List comprehension变量没有定义? (蟒蛇)

时间:2016-10-05 10:43:07

标签: python list list-comprehension

我有一个dicts排序列表,我想将列表中的前三个dicts添加到一个新列表中。

我第一次尝试使用list comp但是在执行时:

new_dict = [pair for pair[0:3] in sortd]

我收到错误“对未定义”,我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您只需要pair[:3]来获取list中的前三个元素。在这种情况下不需要列表理解。

列表理解是迭代列表(或dict / tuple)并执行某些操作的替代且更简洁的方法。例如,假设您在代码中有一个循环,该循环使用列表中元素的平方创建新列表:

square_list = []
original_list = [1, ,2 ,3 ,4]
for item in original_list:
    square_list.append(item*item)

等效列表理解实现将如下:

square_list = [item*item for item in original_list]

有一个很棒的博客Python List Comprehensions: Explained Visually解释了列表理解的概念。您可能会发现它很有用。