Python: "1-2-3-4" 转为 [1, 2, 3, 4]
将格式为 "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 != '']