有人可以帮我解释一下这行代码吗

时间:2020-06-13 01:44:37

标签: python list

我是python的新手,我在线上看到了这一行代码。我还不太完全了解。希望您能帮我解释一下。

[item for list in total_list for item in list]

1 个答案:

答案 0 :(得分:2)

这是list comprehension

等效代码为:

l = []
for list in total_list:
    for item in list:
        l.append(item) 

这种特定的理解有两个for循环,下面是一个示例:

>>> [i*i for i in range(5)]
[0, 1, 4, 9, 16]

在左侧,将要“附加”的值放在列表中,在右侧的是for循环(或从左到右的顺序为多个for循环)。列表(和字典)理解是python的一项功能,它提供了一种更优雅,更有效的方法来构建字典/列表。它们非常强大,您应该在任何时候都可以使用它们(它比使用for循环和附加功能更具Python感)。

仅当给定条件为True时,您也可以选择“追加”到列表。例如,假设我们只想在数字为偶数时“追加”:

>>> [i for i in range(6) if i % 2 == 0]
[0, 2, 4]

在这种情况下,等效代码为:

l = []
for i in range(6):
    if i % 2 == 0:
        l.append(i)