python - 遍历列表列表
问题描述
我正在尝试使用另一个列表中的列表来倍增数字
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:列表索引必须是整数或切片,而不是元组
我在这里做错了什么?
解决方案
在最后一个 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])
推荐阅读
- javascript - 问题.js | 修复 applyForce 的更新问题
- flutter - Flutter - Clipping Path 曲线非常锐利
- java - 找不到书面方法 java.util.function 的符号
- outlook - NVDA 未在 Outlook 中读取带有背景图像的文本
- r - 将 NA 添加到列的顶部
- spring-boot - 由于出现此错误,无法运行 docker 容器:无法访问 jarfile app.jar
- python - 带有 numpy 数组的条件循环
- python - 预测相同输出的 Keras 神经网络
- javascript - 检查掩码数据是否在字符串中可用
- visual-studio-code - 去掉 vscode 中的特定红色下划线