[英]Enumerate clarification
这是我得到的代码:
cast = ["Barney Stinson", "Robin Scherbatsky", "Ted Mosby", "Lily Aldrin", "Marshall Eriksen"]
heights = [72, 68, 72, 66, 76]
print(cast)
这是所需的输出:
['Barney Stinson 72', 'Robin Scherbatsky 68', 'Ted Mosby 72', 'Lily Aldrin 66', 'Marshall Eriksen 76']
这是解决方案:
cast = ["Barney Stinson", "Robin Scherbatsky", "Ted Mosby", "Lily Aldrin", "Marshall Eriksen"]
heights = [72, 68, 72, 66, 76]
for i, character in enumerate(cast):
cast[i] = character + " " + str(heights[i])
print(cast)
这是这段代码的问题:
for i, character in enumerate(cast):
cast[i] = character + " " + str(heights[i])
为什么推杆是推杆cast[i]
和heights[i]
,而不仅仅是推杆/高度? 如果它是一个枚举函数,是否应该为所有名称编号?
例:
letters = ['a', 'b', 'c', 'd', 'e']
for i, letter in enumerate(letters):
print(i, letter)
此代码将输出:
0 a
1 b
2 c
3 d
4 e
您正在修改的字符cast
当你迭代它同时也考虑在高度列表中的相同字符的位置。
您不能使用height
因为那不是该循环中的有效变量名,并且heights是整个列表; 继续尝试使用它,它不会为您提供所需的输出
如果您执行以下操作,则循环后演员表不会更改
character += " " + str(heights[i])
注意: zip(cast, height)
将为您提供非常相似的输出
例如,
print([c + " " + h in zip(cast, heights)])
关于您的问题:
为什么推杆是推杆[i]和高度[i],而不仅仅是推杆/高度? 如果它是一个枚举函数,是否应该为所有名称编号?
使用enumerate()
创建for loop
,如下所示:
for counter, value in enumerate(some_list):
第一个变量counter
等于列表的索引,而value
等于列表中该索引处的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.