我正在尝试运行一个代码,该代码将在列表中找到列表的第二个元素并对该段代码执行算术,但是在尝试运行所述代码时(在下面给出)
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
依据列表中每个列表的第二个元素。
答案 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