【问题标题】:List comprehension variable not defined? (Python) [closed]列表理解变量未定义? (Python)[关闭]
【发布时间】:2016-10-05 10:43:06
【问题描述】:

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

我第一次尝试使用列表组合,但是在这样做时:

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

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

【问题讨论】:

  • new_dict = [pair[0:3] for pair in sortd] 应该更接近你想要的
  • 请注意,new_dict 不会是字典。
  • 只需 sortd[:3] 给出列表中的前 3 个字典。不需要理解。
  • 感谢 sortd[:3] 的工作就像一个魅力

标签: python list list-comprehension


【解决方案1】:

您只需要执行pair[:3] 即可从list 获取前三个元素。在这种情况下,不需要列表理解。

列表推导是迭代列表(或字典/元组)并执行某些操作的替代且更简洁的方法。例如,假设您的代码中有一个循环,该循环创建新列表,列表中元素的平方为:

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 解释了列表理解的概念。您可能会发现它很有用。

【讨论】:

  • item*item for item in ...
猜你喜欢
  • 1970-01-01
  • 2021-06-05
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
相关资源
最近更新 更多