簡體   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