Questions tagged «list-comprehension»

语法构造提供了一种简洁的方式来创建类似于数学集合生成器符号的样式的列表。由于多种语言都支持列表理解,因此请将此标记与编程语言的标记结合使用。






8
Python字典理解
是否可以在Python(用于键)中创建字典理解? 在没有列表理解的情况下,您可以使用以下内容: l = [] for n in range(1, 11): l.append(n) 我们可以将其简化为列表理解:l = [n for n in range(1, 11)]。 但是,说我想将字典的键设置为相同的值。我可以: d = {} for n in range(1, 11): d[n] = True # same value for each 我已经试过了: d = {} d[i for i in range(1, 11)] = True 不过,我得到一个SyntaxError上for。 另外(我不需要这部分,只是想知道),您能否将字典的键设置为一堆不同的值,例如: …


6
Python选择列表中最长字符串的最有效方法?
我有一个可变长度的列表,正在尝试寻找一种方法来测试当前正在评估的列表项是否是列表中包含的最长字符串。我正在使用Python 2.6.1 例如: mylist = ['abc','abcdef','abcd'] for each in mylist: if condition1: do_something() elif ___________________: #else if each is the longest string contained in mylist: do_something_else() 当然,有一个简单的列表理解功能很简短,但我却忽略了它?

10
列表理解中的双重迭代
在Python中,列表推导中可以有多个迭代器,例如 [(x,y) for x in a for y in b] 对于一些合适的序列a和b。我知道Python的列表推导的嵌套循环语义。 我的问题是:理解中的一个迭代器可以引用另一个吗?换句话说:我可以有这样的东西: [x for x in a for a in b] 外循环的当前值在哪里是内循环的迭代器? 例如,如果我有一个嵌套列表: a=[[1,2],[3,4]] 列表理解表达式将如何获得此结果: [1,2,3,4] ?? (请只列出理解答案,因为这是我要查找的内容)。

12
嵌套列表上的列表理解?
我有这个嵌套列表: l = [['40', '20', '10', '30'], ['20', '20', '20', '20', '20', '30', '20'], ['30', '20', '30', '50', '10', '30', '20', '20', '20'], ['100', '100'], ['100', '100', '100', '100', '100'], ['100', '100', '100', '100']] 现在,我要做的是将列表中的每个元素转换为float。我的解决方案是这样的: newList = [] for x in l: for y in x: newList.append(float(y)) 但这可以使用嵌套列表理解来完成吗? 我所做的是: [float(y) …


5
单行列表理解:if-else变体
更多有关python列表理解语法的信息。我有一个列表推导,它产生给定范围的奇数列表: [x for x in range(1, 10) if x % 2] 这将构成一个过滤器-我有一个源列表,其中删除了偶数(if x % 2)。我想在这里使用if-then-else之类的东西。以下代码失败: >>> [x for x in range(1, 10) if x % 2 else x * 100] File "<stdin>", line 1 [x for x in range(1, 10) if x % 2 else x * 100] ^ SyntaxError: …

5
从类定义中的列表理解访问类变量
如何从类定义中的列表理解中访问其他类变量?以下内容在Python 2中有效,但在Python 3中失败: class Foo: x = 5 y = [x for i in range(1)] Python 3.2给出了错误: NameError: global name 'x' is not defined 尝试Foo.x也不起作用。关于如何在Python 3中执行此操作的任何想法? 一个更复杂的激励示例: from collections import namedtuple class StateDatabase: State = namedtuple('State', ['name', 'capital']) db = [State(*args) for args in [ ['Alabama', 'Montgomery'], ['Alaska', 'Juneau'], # …

7
列表理解和功能比“ for循环”快吗?
在Python的性能方面,是一个列表理解或功能,如map(),filter()和reduce()比for循环快?从技术上讲,为什么它们以C速度运行,而for循环以python虚拟机速度运行? 假设在我正在开发的游戏中,我需要使用for循环绘制复杂而庞大的地图。这个问题肯定是相关的,例如,如果列表理解确实确实更快,那么它将是避免滞后的更好选择(尽管代码具有视觉上的复杂性)。

14
从CSV文件创建字典?
我正在尝试从csv文件创建字典。csv文件的第一列包含唯一键,第二列包含值。csv文件的每一行代表字典中的唯一键,值对。我尝试使用csv.DictReader和csv.DictWriter类,但是只能弄清楚如何为每一行生成一个新的字典。我要一部字典。这是我尝试使用的代码: import csv with open('coors.csv', mode='r') as infile: reader = csv.reader(infile) with open('coors_new.csv', mode='w') as outfile: writer = csv.writer(outfile) for rows in reader: k = rows[0] v = rows[1] mydict = {k:v for k, v in rows} print(mydict) 当我运行上面的代码时,我得到一个ValueError: too many values to unpack (expected 2)。如何从csv文件创建一个字典?谢谢。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.