我正在使用 Python 3,并试图检测一个项目是否是列表中的最后一个,但有时会重复。这是我的代码:
a = ['hello', 9, 3.14, 9]
for item in a:
print(item, end='')
if item != a[-1]:
print(', ')
我想要这个输出:
hello,
9,
3.14,
9
但我得到这个输出:
hello,
93.14,
9
我明白为什么我得到我不想要的输出。如果我仍然可以使用循环,我会更愿意,但我可以解决它们。 (我想用更复杂的代码来使用它)
原文由 nedla2004 发布,翻译遵循 CC BY-SA 4.0 许可协议
与其尝试检测你是否在最后一项,不如在 打印下 一项时打印逗号和换行符(只需要检测你是否在第一项):
enumerate()
函数向每个元素添加一个计数器(请参阅 枚举是什么意思? ),并且if i:
对计数器的所有值都是正确的,除了0
第一个元素)。或者使用
print()
插入分隔符:sep
值被插入到每个参数之间(*a
应用a
中的所有值作为单独的参数 (星号,见 double 是什么) ) 做参数? )。这比使用print(',n'.join(map(str, a)))
更有效,因为这不需要先构建一个全新的字符串对象。