Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将浮点数字符串拆分为两个列表?_Python_List_Python 3.x_Split - Fatal编程技术网

Python 如何将浮点数字符串拆分为两个列表?

Python 如何将浮点数字符串拆分为两个列表?,python,list,python-3.x,split,Python,List,Python 3.x,Split,我有字符串'1234.12',我想把它分成两个列表:[1234]和[12] 我知道的唯一方法是使用.split()将整个字符串组成一个列表,并理解为:[n.split()代表'1234.12'中的n],这给了我: [['1'], ['2'], ['3'], ['4'], ['.'], ['1'], ['2']] 或者只需分两部分完成,映射到int,然后在列表中换行: s = '1234.12' a, b = map(int,s.split(".", 1)) a,b = [a],[b] 这

我有字符串
'1234.12'
,我想把它分成两个列表:
[1234]
[12]

我知道的唯一方法是使用
.split()
将整个字符串组成一个列表,并理解为:
[n.split()代表'1234.12'中的n]
,这给了我:

[['1'], ['2'], ['3'], ['4'], ['.'], ['1'], ['2']]
或者只需分两部分完成,映射到int,然后在列表中换行:

s = '1234.12'

a, b = map(int,s.split(".", 1))

a,b = [a],[b]
这两个数字都将转换为int并包装在列表中:

a -> [1234]
b ->  [12]

您可以使用点拆分字符串,并使用
map
函数将结果转换为列表:

>>> map(list,s.split('.'))
[['1', '2', '3', '4'], ['1', '2']]
如果希望结果为
int
,可以使用
map
中的
int
函数:

>>> map(int,s.split('.'))
[1234, 12]

请注意,在这种情况下,您可以通过简单的索引来访问数字,而不需要将每个数字都放在列表中。

要解释您尝试的内容不起作用的原因

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()
因此,由于
拆分
一次只给出一个字符,因此它不起作用。要将拆分移动到字符串本身:

n for n in '1234.12'.split()
在这一点上,你不再需要理解了

'1234.12'.split()
最后一段在别处解释过<代码>拆分,默认情况下,在空白处拆分,因此要告诉它改为在句点上拆分:

'1234.12'.split('.')

OP想要
[1234][12]
而不是
[['1','2','3','4'],['1','2']]
@PadraicCunningham是的,但由于问题有点模糊,我建议了两种方式。lol没有一种是正确的方式,问题很清楚,他们想要我的答案;)@帕德雷坎宁厄姆:是的;-)我知道,但我认为,当他可以通过索引访问列表时,没有必要将数字放入列表中。无论如何,将数字放入列表将是一项简单的任务;-)。除非您需要列表中的号码;)谢谢让我问你1在split函数中的用法是什么?@wa7d,我们只有一个
,所以当我们找到第一个函数时,没有任何意义,它只意味着一旦找到,就基本上在第一个函数上进行split,不再寻找了为什么python会忽略前导零?我尝试了一个前导为零的数字,它会在后面打印所有内容zero@wa7d,前导0在python2中表示八进制,在python3中表示无效语法
'1234.12'.split('.')