我有一些數據如下:插入逗號
stats = {'a':1000, 'b':3000, 'c': 100}
我想每一個元素後插入逗號,在列表理解,見下面的例子:
d = ['a',',','b',',','c',',']
我怎麼能做到這一點與普通列表理解:下面
找到示例代碼:
[k +','for k,v in stats.iteritems()],但似乎沒有得到所需的結果。
任何幫助表示讚賞 TIA!
我有一些數據如下:插入逗號
stats = {'a':1000, 'b':3000, 'c': 100}
我想每一個元素後插入逗號,在列表理解,見下面的例子:
d = ['a',',','b',',','c',',']
我怎麼能做到這一點與普通列表理解:下面
找到示例代碼:
[k +','for k,v in stats.iteritems()],但似乎沒有得到所需的結果。
任何幫助表示讚賞 TIA!
它可以通過字典的按鍵感應壓扁兩人一組做:
d = [item for key in stats for item in (key, ',')]
另一種選擇是壓縮鍵和逗號,並把它們連:
d = list(chain(*zip(stats, repeat(','))))
不需要'.keys()' –
@Chris_Rands,你是正確的,編輯過。謝謝! – Elisha
如果你的目標是來連接的元素爲字符串,你可以使用str.join
:
>>> stats = {'a':1000, 'b':3000, 'c': 100}
>>> ','.join(stats)
'a,c,b'
如果你真的想要一個結尾逗號,你可以添加:
>>> ','.join(stats) + ','
'a,c,b,'
需要注意的是Python的類型的字典是無序的:你不能確保密鑰在相同的順序輸入出來。爲此,你需要一個清單或OrderedDict
。
>>> stats = [('a', 1000), ('b', 3000), ('c', 100)]
>>> ','.join(key for key,value in stats)
'a,b,c'
>>> ','.join(key for key,value in stats) + ','
'a,b,c,'
如果由於某種原因,你真的想要的字符列表:
>>> list(','.join(key for key,value in stats) + ',')
['a', ',', 'b', ',', 'c', ',']
如果鍵是一個字符長它只會工作。但是,要遍歷字符串中的字符,您甚至不需要將字符串轉換爲列表。
和您的預期結果是什麼? – RomanPerekhrest
命令是否重要? –
這是因爲你想連接到一個字符串?我們有'加入'的。 – Elmex80s