在Python 2.7中,我有一些代码:
values = list()
for i in dict.keys():
values.append( (i,)+dict[i] )
返回values
列表,其长度为2428。
相同,但是在理解模式下返回长度列表 - > 1,每个2428个元素嵌套1层深(len(values[0])
- > 2428):
values = list()
values.append( (i,)+dict[i] for i in dict.keys() )
我简直想知道为什么。我必须错过一些东西。
答案 0 :(得分:3)
您刚刚将生成器表达式(单个对象)附加到列表中。
你可以extend
列表中的values = list()
values.extend( (i,)+dct[i] for i in dct )
。进出口。这是一个可迭代的:
values = [(k,)+v for k, v in dct.items()]
或使用列表理解来构建列表,这是更标准的方式:
items
请注意,我已经使用dict的.keys
方法一次性生成键值对,当你在dict上迭代dict
时可以删除dict
$(this).find('input').length > 0
//or just
$(this).find('input').length
//since it is truthy. or
$(this).find('> input').length
//if you only want to search one level deep
1}}不是一个好名字,因为它会影响内置def answer_replace(data):
replaced_data = []
for element in data:
replaced_element = []
for index, item in enumerate(element):
if index == 5 or index == 7 or index == 8 or index == 10 or index == 12 or index == 15:
newitem = item.split(',')
temp = []
for item in newitem:
item = item.strip()
temp.append(re.sub(item, answer_replacement[index][item], item))
replaced_element.append(temp)
elif index in answer_replacement:
replaced_element.append(answer_replacement[index].get(item, item))
else: # no replacement available for this index
replaced_element.append(item)
replaced_data.append(replaced_element)
return replaced_data
。
您可以阅读有关Generator expressions的更多信息。