Python:"1-2-3-4"到[1,2,3,4]

Den*_*gan 2 python

将格式上的字符串转换"1-2-3-4"为列表的最佳方法是什么[1, 2, 3, 4]?该字符串也可能为空,在这种情况下,转换应返回一个空列表[].

这就是我所拥有的:

map(lambda x: int(x),
    filter(lambda x: x != '',
           "1-2-3-4".split('-')))
Run Code Online (Sandbox Code Playgroud)

编辑:对不起所有在我更正我的问题之前回答的人,在第一分钟左右不清楚.

Rud*_*ski 12

您可以使用列表推导使其更短.使用ifto帐户为空字符串.

the_string = '1-2-3-4'

[int(x) for x in the_string.split('-') if x != '']
Run Code Online (Sandbox Code Playgroud)

  • `>>> [int(i)for i in''.split(' - ')if if]` (11认同)

Nad*_*mli 8

>>> for s in ["", "0", "-0-0", "1-2-3-4"]:
...     print(map(int, filter(None, s.split('-'))))
... 
[]
[0]
[0, 0]
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)