首页 > 解决方案 > 我正在尝试打印一个列表。它给出类型错误

问题描述

我正在尝试打印一个列表。它给出类型错误。

buyList = ["Potato", "Suger", "Rice", "Oil", "Cake", "Biscuit"]

for i in buyList:
    if i % 2 is not 0:
        print(i, end=" ")
        i += 1

错误

TypeError: not all arguments converted during string formatting

标签: pythonpython-3.x

解决方案


您必须使用列表的索引进行迭代。无需在循环中增加循环for变量

In [79]: buyList = ["Potato", "Suger", "Rice", "Oil", "Cake", "Biscuit"]
    ...:
    ...: for i in range(len(buyList)):
    ...:     if i % 2 != 0:
    ...:         print(buyList[i], end=" ")
    ...:
Suger Oil Biscuit

另一种方法是使用enumeratewhich 给出索引 + 值。

In [80]: buyList = ["Potato", "Suger", "Rice", "Oil", "Cake", "Biscuit"]
    ...:
    ...: for index, value in enumerate(buyList):
    ...:     if index % 2 != 0:
    ...:         print(value, end=" ")
    ...:
Suger Oil Biscuit

推荐阅读