如何将一个浮点数的字符串分成两部分?
我有字符串'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