如何在python中使用map从str转换为list
我做到了:如何在python中使用map从str转换为list,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我做到了: >>>data="1,2,3,,4,51,,6" >>>list(map(int,map((lambda x:x.split(",")),map(lambda y:y,data.split(",,"))))) 我想得到:[1,2,3,4,51,6]您可以使用列表理解来拆分上的字符串,“如果字符不是无 >>> [int(i) for i in data.split(',') if i] [1, 2, 3, 4, 51, 6]
>>>data="1,2,3,,4,51,,6"
>>>list(map(int,map((lambda x:x.split(",")),map(lambda y:y,data.split(",,")))))
我想得到:
[1,2,3,4,51,6]
您可以使用列表理解来拆分上的字符串,“
如果字符不是无
>>> [int(i) for i in data.split(',') if i]
[1, 2, 3, 4, 51, 6]
如果您不想使用列表理解(我建议),可以使用map
和filter
,以牺牲可读性为代价
>>> list(map(int, filter(None, data.split(','))))
[1, 2, 3, 4, 51, 6]
您还可以使用
filter
过滤空字符串和None
值,然后使用map
:
>>> map(int, filter(None, data.split(',')))
[1, 2, 3, 4, 51, 6]
另一个解决办法可能是
print map(int,data.replace(",,",",").split(","))
编辑:这是针对您输入的特定数据的解决方案,因此不是针对不同类型数据的综合方法。最好指出。我想使用没有循环的映射函数@奥瓦尤尼斯:为什么?这是最好的方法(列表理解得到了很好的优化,使用
map
,您不太可能获得任何性能优势,同时也牺牲了可读性)。您以前问过并删除过相同的问题吗?还是这是某门课程的作业?这是python课程的作业。这是哪门课程的作业?SCE学院的编程语言原理(python)