python映射字符串拆分列表

新手上路,请多包涵

我正在尝试将 str.split 函数映射到字符串数组。即,我想拆分字符串数组中遵循相同格式的所有字符串。知道如何在 python 中使用 map 做到这一点吗?例如,假设我们有一个这样的列表:

 a = ['2011-12-22 46:31:11','2011-12-20 20:19:17', '2011-12-20 01:09:21']

想要使用 map 按空格 ( split(" ") ) 拆分字符串以获得一个列表:

 [['2011-12-22', '46:31:11'], ['2011-12-20', '20:19:17'], ['2011-12-20', '01:09:21']]

原文由 pacodelumberg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 238
2 个回答

虽然它并不为人所知,但有一个专门为此目的而设计的函数 operator.methodcaller

 >>> from operator import methodcaller
>>> a = ['2011-12-22 46:31:11','2011-12-20 20:19:17', '2011-12-20 01:09:21']
>>> list(map(methodcaller("split", " "), a))
[['2011-12-22', '46:31:11'], ['2011-12-20', '20:19:17'], ['2011-12-20', '01:09:21']]

这种技术比使用 lambda 表达式的等效方法更快。

原文由 Raymond Hettinger 发布,翻译遵循 CC BY-SA 4.0 许可协议

map(lambda x: x.split(), a)

但是,使用列表理解

[x.split() for x in a]

在这种情况下要清楚得多。

原文由 Russell Dias 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题