Python: "1-2-3-4" 转为 [1, 2, 3, 4]

2 投票
7 回答
2510 浏览
提问于 2025-04-15 14:36

将格式为 "1-2-3-4" 的字符串转换成列表 [1, 2, 3, 4] 的最佳方法是什么?如果字符串是空的,那么转换后应该返回一个空列表 []

这是我目前的代码:

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

编辑:抱歉之前回答的朋友们,我在问题描述上有些不清楚,刚开始的那一分钟左右不太明确。

7 个回答

4

把高阶函数转换成更容易理解的列表推导式

[ int(n) for n in "1-2-3-4".split('-') if n != '' ]

其他部分没问题。

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]

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

12

你可以用列表推导式来让代码更简洁。使用 if 来处理空字符串的情况。

the_string = '1-2-3-4'

[int(x) for x in the_string.split('-') if x != '']

撰写回答