繁体   English   中英

For循环中的Python最后迭代

[英]Python Last Iteration in For Loop

有没有简单的方法在Python中找到for循环的Last Iteration? 我只想将列表转换为CSV。

要将列表转换为CSV,请使用join -function:

>>> lst = [1,2,3,4]
>>> ",".join(str(item) for item in lst)
"1,2,3,4"

如果列表中只包含字符串,则只需执行",".join(l)

要将列表转换为csv,您可以使用csv模块:

import csv

list_of_lists = ["nf", [1,2]]

with open('file', 'wb') as f:
     csv.writer(f).writerows(list_of_lists)

'file'文件是:

n,f
1,2

您最好的解决方案可能是使用csv模块,如其他地方所建议的那样。 但是,如上所述,请回答您的问题:

选项1:使用enumerate()计算你的方式

for i, value in enumerate(my_list):
    print value,
    if i < len(my_list)-1:
        print ", followed by"

选项2:在循环外处理最终值( my_list[-1]

for value in my_list[:-1]:
    print value, ", followed by"
print my_list[-1]

实际上当python中的for循环结束时,它绑定的名称仍然可以访问并绑定到它的最后一个值:

for i in range(10):
    if i == 3:
        break
print i # prints 3

我用这一招用with ,如:

with Timer() as T:
    pass # do something
print T.format() # prints 0.34 seconds

不完全是你想要的:

>>> for i in range(5):
    print(i)
else:
    print("Last i is",i)


0
1
2
3
4
Last i is 4

编辑 :标准库中有csv模块,或者只是','.join(LIST)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM