有没有简单的方法可以在Python中找到for循环的Last Iteration?我只想将列表转换为CSV。
答案 0 :(得分:12)
要将列表转换为CSV,请使用join
- 函数:
>>> lst = [1,2,3,4]
>>> ",".join(str(item) for item in lst)
"1,2,3,4"
如果列表中只包含字符串,则只需",".join(l)
。
答案 1 :(得分:12)
要将列表转换为csv,您可以使用csv
module:
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
答案 2 :(得分:12)
您最好的解决方案可能是使用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]
答案 3 :(得分:9)
实际上当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
答案 4 :(得分:4)
不完全符合您的要求:
>>> 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)