繁体   English   中英

列举澄清

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM