對a question on multiple-value elements in a config file(這完全符合我的需要)的答案建議「從配置中解壓字符串」。我閱讀了幾處地方提出的unpacking arguments lists的文檔,但我不明白這與我的問題有何關係。python:將一個字符串解壓到列表
我相信這一定是顯而易見的:有一個字符串str = "123,456"
,我怎樣才能將其轉換爲列表[123,456]
(用逗號在字符串中分離出來可能會有所不同元素的個數)
謝謝。
對a question on multiple-value elements in a config file(這完全符合我的需要)的答案建議「從配置中解壓字符串」。我閱讀了幾處地方提出的unpacking arguments lists的文檔,但我不明白這與我的問題有何關係。python:將一個字符串解壓到列表
我相信這一定是顯而易見的:有一個字符串str = "123,456"
,我怎樣才能將其轉換爲列表[123,456]
(用逗號在字符串中分離出來可能會有所不同元素的個數)
謝謝。
你想要一個字符串列表或一個整數列表嗎?
如果你只是想要一個字符串列表,這是非常簡單的:
my_list = my_string.split(',')
如果您希望將這些轉換爲整數,您需要:
my_list = map(int, my_string.split(','))
(另外,不要使用str
作爲變量名稱,因爲它會影響內置的str()
函數。)
出於好奇,性能方面是否有顯着差異使用'map'還是簡單地使用我提供的語法? – pcalcao
不是。說實話,我通常自己使用列表理解,但這次鍵入'map'是因爲鍵入:-)更快 –
最簡單的方法是使用split()
。
unpacked = str.split(',')
[int(x) for x in str.split(",")]
你基本上將函數int
通過您的字符串的分割產生的每一個元素。
簡單地說str.split(',')
的結果是["123","456"]
。
正如丹尼爾羅斯曼指出的那樣,您應該注意不要使用無意中掩蓋內置方法的變量或方法名稱,例如str
。
儘管我同意其他答案,但您也應該在inva情況下處理異常假設數字的蓋子字符串表示。以下面的代碼片段爲例:
number_string = "123,456,x21"
delimiter = ","
number_list = []
for item in number_string.split(delimiter):
try:
my_num = int(item)
number_list.append(item)
except ValueError, e:
# you can choose to just pass or handle the error like so
print "Skipping %s: %s" % (item, e.message)
只是一個想法。祝你好運!
謝謝你的回覆。我用map()函數學了一些東西。另外「str」對於一個函數來說確實是一個糟糕的名字,我通常使用thisString版本(但墨菲法則規定我在全球發佈時使用「str」):) – WoJ