我想知道对for循环中的最后一个元素进行特殊处理的最佳方法(更紧凑和"pythonic"方式).有一段代码只能在元素之间调用,在最后一个元素中被抑制.
以下是我目前的工作方式:
for i, data in enumerate(data_list):
code_that_is_done_for_every_element
if i != len(data_list) - 1:
code_that_is_done_between_elements
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法?
注意:我不想使用hacks,例如使用reduce;)
我正在使用Python 3,并尝试检测项目是否是列表中的最后一项,但有时会重复.这是我的代码:
a = ['hello', 9, 3.14, 9]
for item in a:
print(item, end='')
if item != a[-1]:
print(', ')
Run Code Online (Sandbox Code Playgroud)
我希望这个输出:
hello,
9,
3.14,
9
Run Code Online (Sandbox Code Playgroud)
但我得到这个输出:
hello,
93.14,
9
Run Code Online (Sandbox Code Playgroud)
我理解为什么我得到了我不想要的输出.我宁愿我仍然可以使用循环,但我可以解决它们.(我想用更复杂的代码来使用它)