我有字符串'1234.12'
。我想將字符串拆分成兩個列表[1234] [12]
如何將一個浮點數的字符串分成兩部分?
我知道的唯一方法是使用.split()將整個字符串變爲列表。 或者使用一個修真[ n.split() for n in '1234.12' ]
這使我
[['1'], ['2'], ['3'], ['4'], ['.'], ['1'], ['2']]
我有字符串'1234.12'
。我想將字符串拆分成兩個列表[1234] [12]
如何將一個浮點數的字符串分成兩部分?
我知道的唯一方法是使用.split()將整個字符串變爲列表。 或者使用一個修真[ n.split() for n in '1234.12' ]
這使我
[['1'], ['2'], ['3'], ['4'], ['.'], ['1'], ['2']]
s = '1234.12'
a,b = ([int(x)] for x in s.split(".",1))
print(a,b)
或者只是做了兩個部分,地圖爲int,只是包裹在列表後:
s = '1234.12'
a, b = map(int,s.split(".", 1))
a,b = [a],[b]
這都將讓你的兩個數字轉換爲int幷包裹在列表中:
a -> [1234]
b -> [12]
您可以將串點和n使用map
函數將結果轉換到列表:
>>> map(list,s.split('.'))
[['1', '2', '3', '4'], ['1', '2']]
和你想要的結果作爲int
您可以使用int
函數內map
:在這個
>>> map(int,s.split('.'))
[1234, 12]
注意您可以通過簡單的索引訪問數字,而無需將每個數字都放在列表中。
OP希望'[1234] [12]'不是'[['1', '2','3','4'],['1','2']]' –
@PadraicCunningham是的,但由於問題有點含糊,我提出了2種方法。 – Kasramvd
大聲笑沒有是正確的方式,問題是非常明確的,他們想要我在我的答案;) –
要解釋爲什麼你想不工作是什麼,
n.split() for n in '1234.12'
實際上等同於
for n in '1234.12':
n.split()
當你遍歷一個這樣的字符串,你最終得到的單個字符,所以我們也可以說相當於:
for n in ('1', '2', '3', '4', '.', '1', '2'):
n.split()
所以自從split
一次只給出一個字符,它不起作用。您想要將拆分移動到字符串本身:
n for n in '1234.12'.split()
此時,您不再需要理解。
'1234.12'.split()
最後一塊是其他地方所解釋... split
,默認情況下,按空白進行分割,所以要告訴它各執一段代替:
'1234.12'.split('.')
感謝。讓我問你在split函數裏面有什麼用法? – wa7d
@ wa7d,我們只有一個'.',所以當我們找到第一個時,沒有超出的意思,它只是意味着一旦找到並且不再尋找就基本上分裂了。 –
爲什麼python忽略前導零?我嘗試了一個帶有前導零的數字,它在0之後打印所有內容 – wa7d