my_list = ['a', 'b', 'c', 'd','e','f']
我想要的清單在管道或逗號分隔的格式打印出來,但是因爲我的一些列表對象可以有逗號或管道,我想環繞當我打印
每個對象的雙引號即輸出應該是
"a"|"b"|"c"|"d"|"e"|"f" rather than a|b|c|d|e|f
我不能在我的Python版本
的使用格式my_list = ['a', 'b', 'c', 'd','e','f']
我想要的清單在管道或逗號分隔的格式打印出來,但是因爲我的一些列表對象可以有逗號或管道,我想環繞當我打印
每個對象的雙引號即輸出應該是
"a"|"b"|"c"|"d"|"e"|"f" rather than a|b|c|d|e|f
我不能在我的Python版本
的使用格式創建一個生成器來格式化每個元素,然後解壓縮並使用自定義分隔符。如果您在print()
函數首先使用Python 2,import
(這可以安全地在Python 3要做的事):
>>> from __future__ import print_function
>>> print(*('"{}"'.format(item) for item in my_list), sep='|')
"a"|"b"|"c"|"d"|"e"|"f"
>>> print '"' + '"|"'.join(my_list) + '"'
"a"|"b"|"c"|"d"|"e"|"f"
工作正常,但似乎不太pythonic。 – MarkyPython
1.爲什麼不是pythonic? 2.我懷疑這是所給解決方案中最有效的。 – Boa
我傾向於使用''「{}」'。format(...)'而不是''''+ ... +'「'''。有很多像這樣的嵌套/交替引號是不太可讀的。 – univerio
不要這樣做自己。你會試圖處理所有的角落案件。 (如果你的字段可以對他們有雙引號?)使用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"
'打印(。 ' 「{}」' 格式(MyString的)) ' –