因此,我一直在学习 Python 中的列表推导,但不了解嵌套列表推导在 Python 中如何工作的逻辑。考虑以下代码片段:
####TRADITIONAL EXAMPLE-1###
L = []
for i in range(5):
for j in range(4):
L.append(j)
#output of l-> [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]
####TRADITIONAL EXAMPLE-2###
K = []
for i in range(5):
for j in range(4):
K.append(i)
#output of k -> [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4]
好的,这一切都说得通,但是当我想使用列表推导重新创建这些时,逻辑对我来说没有意义。现在考虑这些例子:
###LIST COMPREHENSION EXAMPLE-3####
L1 = [j for j in range(4) for i in range(5)]
#Output of L1 -> [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3]
###LIST COMPREHENSION EXAMPLE-4####
K1 = [i for j in range(4) for i in range(5)]
#Output of K1 -> [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
###LIST COMPREHENSION EXAMPLE-5####
Q = [[j for j in range(4)] for i in range(5)]
#Output of Q -> [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
###LIST COMPREHENSION EXAMPLE-6####
Q1 = [[i for j in range(4)] for i in range(5)]
#output of Q1 -> [[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]
所以我不知道为什么,但我希望输出 L 和 L1(示例 1 和 3)是相同的,无论使用传统方式还是列表理解方式,K 和 K1(示例 2 和 4)也是如此当我比较 Q 和 Q1 的输出时(例如 5 和 6)。就像比较 Q1 和 K1(示例 4 和 6)一样,它们几乎遵循相同的语法,但输出却大不相同。
我希望我能够根据与传统方式相比,这些列表理解中的每一个给出的输出来澄清我的困惑。我尝试在线搜索并遵循教程,但它们只是陈述示例,而不是解释其背后的工作或逻辑。我只是不想在不知道输出为何如此的原因的情况下搞砸输出。谢谢您的帮助 :)