列举澄清

时间:2018-10-13 11:37:04

标签: python enumerate

这是我得到的代码:

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

2 个答案:

答案 0 :(得分:1)

您正在迭代#include "stdafx.h" #include <iostream> using namespace std; int main() { int n, i, v[50], max, count = 0; cout << "Number of elements = "; cin >> n; for (i = 0; i < n; i++) { cout << "v[" << i << "]="; cin >> v[i]; } max = v[0]; for (i = 0; i < n; i++) if (max < v[i]) { max = v[i]; count = 0; } else ++count; cout << endl; cout << "Maximum value, " << max << ", occurs " << count << " times."; cout << endl; system("pause"); return 0; } 的字符,同时还要在高度列表中使用相同字符的位置。

您不能使用cast,因为这不是该循环中的有效变量名,并且heights是整个列表;继续尝试使用它,它不会为您提供所需的输出

如果您执行以下操作,则循环后演员表列表将保持不变

height

注意:character += " " + str(heights[i]) 将为您提供非常相似的输出

例如

zip(cast, height)

答案 1 :(得分:0)

关于您的问题:

  

为什么推杆类型为[i]和高度[i]不仅是类型/高度?如果它是一个枚举函数,是否应该为所有名称编号?

使用for loop创建enumerate()时,如下所示:

for counter, value in enumerate(some_list):

第一个变量counter等于列表的索引,而value等于列表中该索引处的元素。

Source