我有一个清单,即
my_list = ['a', 'b', 'c', 'd','e','f']
我想以管道或逗号分隔格式打印出来,但由于我的一些列表对象可以有逗号或管道,我想在打印时在每个对象周围包装双引号
即。输出应该是
"a"|"b"|"c"|"d"|"e"|"f" rather than a|b|c|d|e|f
我无法在我的python版本
上使用格式答案 0 :(得分:4)
创建一个格式化每个元素的生成器,然后将其解压缩并使用自定义分隔符。如果您正在使用Python 2,import
首先是print()
函数(这也可以在Python 3中安全地完成):
>>> from __future__ import print_function
>>> print(*('"{}"'.format(item) for item in my_list), sep='|')
"a"|"b"|"c"|"d"|"e"|"f"
答案 1 :(得分:3)
不要自己这样做。你会试图处理所有角落案件。 (如果您的字段中可以包含双引号,该怎么办?)请改用csv
模块:
s = StringIO()
writer = csv.writer(s, delimiter="|")
writer.writerow(["a", "b", "c", "d,", "e|", "foo\"bar"])
print i.getvalue()
你得到:
a|b|c|d,|"e|"|"foo""bar"
答案 2 :(得分:1)
>>> "|".join(['"{0}"'.format(x) for x in my_list])
"a"|"b"|"c"|"d"|"e"|"f"
答案 3 :(得分:0)
>>> print '"' + '"|"'.join(my_list) + '"'
"a"|"b"|"c"|"d"|"e"|"f"