"for i in range (...)"之前会发生什么



我有一个简单的问题,看看下面的代码:

letters = [hand[i]][:1] for i in range(5)]

"for I in range(5("之前的参数是做什么的??我好像想不通。

一个简单的列表理解有三个部分:

my_list = [A for B in C]

这准确地翻译为:

my_list = []
for B in C:
my_list.append(A)

因此,for之前的部分决定了要创建的列表中包含的内容。


在您的情况下,您也可以这样写:

letters = []
for i in range(i):
letters.append(hand[i][:1]])

上面的代码称为列表理解:

https://docs.python.org/3/tutorial/datastructures.html

因此,上面的代码可以明确地写为:

hand # some data. From your code it should be a nested list, eq: hand = [ [...],[...],... ]
letters = []
for i in range(5): # iterates trough 0-4
element = hand[i][:1] 
letters.append(element)

所以这只是构建列表的一个非常短的方法。你这样读出来:对于range(5)中的每个i,取元素hand[i][:1]并将其分配给新列表letters

如果您的问题是关于零件hand[i][:1],那么这是嵌套列表中的切片。例如:

hand = [
[0,1,2,3],
[4,5,6,7],
...
]
hand[0] == [0,1,2,3]
hand[0][:1] == [0]
hand[1][:1] == [4] # mind it is a slice, so you are left with a list!!

最新更新