我有一个简单的问题,看看下面的代码:
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!!