对列表“int”元素执行算术

2024-03-29 13:25:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试运行一个代码,它将在列表中找到列表的第二个元素,并对该代码段执行算术运算,但在尝试运行上述代码时(如下所示)

data_set_10 = [['A', 0, 0, 'E'], ['A', 0, 1, 'N'], ['A', 2, 2, 'S'], ['A', 2, 3, 'W'], 
           ['B', 0, 3, 'E'], ['B', 0, 2, 'W'], ['B', 5, 2, 'N'],
           ['C', 1, 0, 'N'], ['C', 3, 2, 'E'],
           ['D', 3, 0, 'W']]
def draw_icons(data_set):
    for group in data_set:
        for item in group[1]:
            print(-375 + (item * 75))

draw_icons(data_set_10)

我得到了错误

File "C:/Users/Chris/Downloads/test_draw_icons.py", line 9, in draw_icons for item in group[1]: TypeError: 'int' object is not iterable

这显然与代码部分有关

for item in group[1]

我应该怎么做才能让程序对列表中的项执行算术?我将举一个我想要的输出的例子:

-375
-375
-225
-225

依此类推,根据列表中每个列表的第二个元素。你知道吗


Tags: 代码in元素列表fordatadef代码段
3条回答

由于每个组是一个由4个项目组成的列表,通过使用group[1],您选择了group中的第二个项目,这是一个int,因此没有什么可以迭代的。我想这就是你想要的行为

def draw_icons(data_set):
    for group in data_set:
        item = group[1]:
        print(-375 + (item * 75))

What should I do to get the program to perform arithmetic on the item in the list?

只需删除该行并替换为item = group[1],然后相应地重新插入,这样您的代码就会像

def draw_icons(data_set):
    for group in data_set:
        item = group[1]
        print(-375 + (item * 75))

或者,您可以转换2D列表,这样一个简单的下标将返回第二列元素

for item in zip(*data_set_10)[1]:
    print(-375 + (item * 75))
for item in group[1]:

group[1]是你的int。你在尝试迭代一个int。这显然行不通。你知道吗

你只想:

for group in data_set:
    print(-375 + (group[1] * 75))

相关问题 更多 >