我有一個這樣的字符串(以元素的n個):創建一個從字符串列表,在Python 3.3
input = 'John, 16, random_word, 1, 6, ...'
我怎樣才能將其轉換爲這樣的名單?我希望'''成爲分隔符。
output = [John, 16, random_word, 1, 6, ...]
我有一個這樣的字符串(以元素的n個):創建一個從字符串列表,在Python 3.3
input = 'John, 16, random_word, 1, 6, ...'
我怎樣才能將其轉換爲這樣的名單?我希望'''成爲分隔符。
output = [John, 16, random_word, 1, 6, ...]
你的意思output = ['John', '16', 'random_word', '1', '6', ...]
?你可以像output = inpt.split(', ')
那樣分割它。這也消除了,
之後的空白。
如果我理解正確的話,簡單地做:
output = input.split(',')
你可能需要事後調整每個生成的字符串,因爲split
不關心空格。
問候, 馬特
謝謝!我沒有解釋清楚,但你說得對。這就是我想要的,現在只是去除這些空間。 –
您可以使用input.split(',')
,但正如其他人所指出的,您必須處理前導空格和尾隨空格。可能的解決方案是:
沒有正則表達式:
In [1]: s = 'John, 16, random_word, 1, 6, ...'
In [2]: [subs.strip() for subs in s.split(',')]
Out[2]: ['John', '16', 'random_word', '1', '6', '...']
我在這裏所做的是使用一個list comprehension,在我創建的元素通過調用strip
方法從字符串由從s.split(',')
列表在他們。 這相當於
strings = []
for subs in s.split(','):
strings.append(subs)
print(subs)
與regex:
In [3]: import re
In [4]: re.split(r',\s*', s)
Out[4]: ['John', '16', 'random_word', '1', '6', '...']
此外,儘量不要用input
變量名,因爲你這樣的陰影the built-in function。
你也可以split
上', '
,但你必須絕對確保總有逗號後的空間(想想換行符等)
你能否詳細解釋一下「沒有正則表達式」的步驟?我似乎無法複製你所做的。請注意,我一直在學習編程一週左右。謝謝你! –
@SlobodanStevic我試圖概述過程,隨時提出更具體的問題。請注意,我展示的是來自交互式'ipython'會話,如果您嘗試將其放入腳本中,除非您明確地「打印」某些東西,否則不會看到任何輸出。 –
非常感謝,我做到了! –
使用分割功能。
output = input.split(', ')
這似乎正是我需要的,謝謝!考慮到我的字符串將始終格式化,以便空格僅在逗號後出現。 –
太棒了! :)歡迎 – nickanor