在列表' int'上执行算术运算元素

时间:2015-09-01 11:09:02

标签: python list

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

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)

我收到错误

  

文件" C:/Users/Chris/Downloads/test_draw_icons.py",第9行,在draw_icons中       对于组[1]中的项目:   TypeError:' int'对象不可迭代

这显然与代码的一部分有关

for item in group[1]

如何让程序对列表中的项目执行算术运算?我将举例说明我正在寻找的输出:

-375
-375
-225
-225

依据列表中每个列表的第二个元素。

4 个答案:

答案 0 :(得分:1)

for item in group[1]:

group[1]是您的int。您正在尝试迭代 int。这显然不起作用。

你只想:

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

答案 1 :(得分:1)

由于每个群组都是4个项目的列表,因此已经使用group[1],您正在选择group中的第二个项目,即int,因此无需迭代。我认为这是你正在寻找的行为

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

答案 2 :(得分:1)

  

如何让程序对项目执行算术运算   在列表中?

只需移除该行并替换为def draw_icons(data_set): for group in data_set: item = group[1] print(-375 + (item * 75)) 并相应地重新启动,以便您的代码看起来像

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

或者,您可以转置2D列表,以便简单的下标返回第二列元素

{{1}}

答案 3 :(得分:0)

解决方案非常简单如下:

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:
        print(-375+(group[1]*75))

draw_icons(data_set_10)

我们获得的输出是:

-375
-375
-225
-225
-375
-375
0
-300
-150
-150
相关问题