首页 > 解决方案 > 遍历列表列表

问题描述

我正在尝试使用另一个列表中的列表来倍增数字

from itertools import combinations

target = random.randint(1,1000)
n_large = random.randint(0,4)
list_numbers = set()
large_numbs = [25,50,75,100]

while len(list_numbers)<n_large:
    n = random.choice(large_numbs)
    list_numbers.add(n)
while len(list_numbers)<10:
    n =random.randint(1,10)
    list_numbers.add(n)
list_numbers = sorted(list_numbers,reverse=True)

multi = list(combinations(list_numbers,2))



for i in multi:
    num_1 = (multi[i][0])*(multi[i][1])

但是,当我尝试运行它时,它给了我以下错误:

TypeError:列表索引必须是整数或切片,而不是元组

我在这里做错了什么?

标签: pythonlistfor-loop

解决方案


在最后一个 for 循环中:

for i in multi:
    num_1 = (multi[i][0])*(multi[i][1])

在这种情况下,“i”是值本身,而不是索引。您可以改为键入:

num_1 = i[0] * i[1]

或者您可以使用 enumerate 函数执行相同操作:

for i, _ in enumerate(multi):
    num_1 = (multi[i][0])*(multi[i][1])

推荐阅读