小编jam*_*lak的帖子

一个班轮:从列表创建一个字典,索引作为键

我想在一行中创建给定列表中的字典.字典的键将是索引,值将是列表的元素.像这样的东西:

a = [51,27,13,56]         #given list

d = one-line-statement    #one line statement to create dictionary

print(d)
Run Code Online (Sandbox Code Playgroud)

输出:

{0:51, 1:27, 2:13, 3:56}
Run Code Online (Sandbox Code Playgroud)

我没有任何具体的要求,为什么我要一个线.我只是在探索python,并想知道这是否可行.

python dictionary list python-3.x

87
推荐指数
4
解决办法
8万
查看次数

在python中加入一个字符串列表,并用引号将每个字符串包装起来

我有:

words = ['hello', 'world', 'you', 'look', 'nice']
Run Code Online (Sandbox Code Playgroud)

我希望有:

'"hello", "world", "you", "look", "nice"'
Run Code Online (Sandbox Code Playgroud)

使用Python最简单的方法是什么?

python string join list

81
推荐指数
5
解决办法
5万
查看次数

获取定义方法的类

如何获得在Python中定义方法的类?

我想要以下示例打印" __main__.FooClass":

class FooClass:
    def foo_method(self):
        print "foo"

class BarClass(FooClass):
    pass

bar = BarClass()
print get_class_that_defined_method(bar.foo_method)
Run Code Online (Sandbox Code Playgroud)

python python-2.6 python-datamodel

77
推荐指数
4
解决办法
4万
查看次数

Python异常链接

是否有在Python中使用异常链的标准方法?像Java引起的'异常'一样?

这是一些背景知识.

我有一个带有一个主要异常类的模块DSError:

 class DSError(Exception):
     pass
Run Code Online (Sandbox Code Playgroud)

在这个模块的某个地方会有:

try:
    v = my_dict[k]
    something(v)
except KeyError as e:
    raise DSError("no key %s found for %s" % (k, self))
except ValueError as e:
    raise DSError("Bad Value %s found for %s" % (v, self))
except DSError as e:
    raise DSError("%s raised in %s" % (e, self))
Run Code Online (Sandbox Code Playgroud)

基本上这个片段应该只抛出DSError并告诉我发生了什么以及为什么.问题是try块可能会抛出很多其他异常,所以我更喜欢我能做的事情如下:

try:
    v = my_dict[k]
    something(v)
except Exception as e:
    raise DSError(self, v, e)  # Exception chained...
Run Code Online (Sandbox Code Playgroud)

这是标准的pythonic方式吗?我没有在其他模块中看到异常链,那么在Python中如何完成?

python coding-style exception python-2.x

76
推荐指数
2
解决办法
4万
查看次数

按值python排序dict

假设我有一个字典.

data = {1:'b', 2:'a'}
Run Code Online (Sandbox Code Playgroud)

我希望按'b'和'a'对数据进行排序,以便得到结果

'a','b'
Run Code Online (Sandbox Code Playgroud)

我怎么做?
有任何想法吗?

python dictionary python-2.6

75
推荐指数
7
解决办法
20万
查看次数

Python:如何按几个值对字典列表进行排序?

我想首先按值排序,然后按第二个值排序.是否有捷径可寻?这是一个小例子:

A = [{'name':'john','age':45},
     {'name':'andi','age':23},
     {'name':'john','age':22},
     {'name':'paul','age':35},
     {'name':'john','age':21}]
Run Code Online (Sandbox Code Playgroud)

此命令用于对此列表进行排序'name':

sorted(A, key = lambda user: user['name'])
Run Code Online (Sandbox Code Playgroud)

但我如何按第二个值对此列表进行排序?就像'age'在这个例子中.

我想要这样的排序(首先排序'name'然后排序'age'):

andi - 23
john - 21
john - 22
john - 45
paul - 35
Run Code Online (Sandbox Code Playgroud)

谢谢!

python sorting list

61
推荐指数
2
解决办法
3万
查看次数

python格式字符串千位分隔符和空格

对于具有千位分隔符的打印号,可以使用python格式字符串:

'{:,}'.format(1234567890)
Run Code Online (Sandbox Code Playgroud)

但是,如何指定我需要一个千位分隔符的空间?

python string-formatting

56
推荐指数
5
解决办法
3万
查看次数

元组在for循环中解压缩

我偶然发现了以下代码:

for i,a in enumerate(attributes):
   labels.append(Label(root, text = a, justify = LEFT).grid(sticky = W))
   e = Entry(root)
   e.grid(column=1, row=i)
   entries.append(e)
   entries[i].insert(INSERT,"text to insert")
Run Code Online (Sandbox Code Playgroud)

我不明白'i,a'位和搜索谷歌有关'for'的信息是一个痛苦的屁股,当我尝试和代码使用时我得到错误:

ValueError:需要多于1个值才能解压缩

有谁知道它做了什么或与它有关,我可以谷歌了解更多?

python python-3.x

52
推荐指数
5
解决办法
16万
查看次数

Pythonic方法按字段名称排序namedtuples列表

我想排序一个命名元组列表,而不必记住fieldname的索引.我的解决方案似乎相当尴尬,并希望有人会有一个更优雅的解决方案.

from operator import itemgetter
from collections import namedtuple

Person = namedtuple('Person', 'name age score')
seq = [
    Person(name='nick', age=23, score=100),
    Person(name='bob', age=25, score=200),
]

# sort list by name
print(sorted(seq, key=itemgetter(Person._fields.index('name'))))
# sort list by age
print(sorted(seq, key=itemgetter(Person._fields.index('age'))))
Run Code Online (Sandbox Code Playgroud)

谢谢,尼克

python sorting field-names namedtuple

50
推荐指数
3
解决办法
2万
查看次数

如何在python中创建修复大小列表?

在C++中,我可以创建一个像...一样的数组

int* a = new int[10];
Run Code Online (Sandbox Code Playgroud)

在python中,我只知道我可以声明一个列表,而不是追加一些项目,或者像...

l = [1,2,3,4]
l = range(10)
Run Code Online (Sandbox Code Playgroud)

我可以按照给定的大小初始化列表,比如c ++,不做任何分配吗?

python list

46
推荐指数
4
解决办法
8万
查看次数