Python 在列表'上执行算术;int';要素

Python 在列表'上执行算术;int';要素,python,list,Python,List,我正在尝试运行一个代码,该代码将在列表中找到列表的第二个元素,并对该代码段执行算术运算,但在尝试运行该代码时(如下所示) 我得到了错误 文件“C:/Users/Chris/Downloads/test\u draw\u icons.py”,第9行,在draw\u icons中 对于组[1]中的项目: TypeError:“int”对象不可编辑 这显然与代码部分有关 for item in group[1] 我应该如何让程序对列表中的项执行算术?我将举一个我想要的输出的例子: -375 -375

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

我得到了错误

文件“C:/Users/Chris/Downloads/test\u draw\u icons.py”,第9行,在draw\u icons中 对于组[1]中的项目: TypeError:“int”对象不可编辑

这显然与代码部分有关

for item in group[1]
我应该如何让程序对列表中的项执行算术?我将举一个我想要的输出的例子:

-375
-375
-225
-225
依此类推,根据列表中每个列表的第二个元素

for item in group[1]:
group[1]
是您的
int
。您正在尝试迭代
int
。这显然行不通

你只需要:

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

由于每个组都是一个由4个项目组成的列表,通过使用
group[1]
,您将在
group
中选择第二个项目,这是一个
int
,因此无需迭代。我想这就是你想要的行为

def draw_icons(data_set):
    for group in data_set:
        item = group[1]:
        print(-375 + (item * 75))
我应该怎么做才能让程序对项目执行算术 在名单上

只需删除该行并替换为
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))

解决方案非常简单,如下所示:

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

您不需要第三个for循环。
[-375+(item*75)用于数据中的li\u set\u 10用于li中的item if isinstance(item,int)]
感谢您的帮助,作为python的新手,它向我阐明了一些列表逻辑。
-375
-375
-225
-225
-375
-375
0
-300
-150
-150