我正在尝试一些不同的方法来运行一些for ... in循环。考虑列表的列表:For ... in questions(Python)
list_of_lists = []
list = [1, 2, 3, 4, 5]
for i in range(len(list)):
list_of_lists.append(list) # each entry in l_o_l will now be list
现在让我们说,我想有l_o_l第一“列”被包含在一个单独的列表,a
。 有几种方法可以解决这个问题。例如:
a = [list[0] for list in list_of_lists] # this works (a = [1, 1, 1, 1, 1])
OR
a=[]
for list in list_of_lists:
a.append(hit[0]) #this also works
对于第二个例子,不过,我会想象的 “全” 扩大到相当于
a=[]
a.append(list[0] for list in list_of_lists) #but this, obviously, produces a generator error
工作 “翻译” 是,实际上,
a=[]
a.append([list[0] for list in list_of_lists]) #this works
那么我的问题就是解释和标点符号。如何让Python“知道”追加/确实在list_of_lists扩展列表的“list [0]”附近添加了列表括号(并因此需要在任何重写中)?
你从不在任何地方定义'hit'。 – agf
永远不要调用列表'list'。它会影响名为'list'的内建程序并导致问题。 – murgatroid99
“完全扩展”是什么意思?你的第三个例子不等于你的前两个。相反,这是(语义上)等价的:'a.extend(l [0] for list_of_lists)'(假设'list'和'hit'打算是相同的变量) –