迭代列表以将方法应用于每个成员

时间:2015-03-26 03:42:17

标签: python string list python-3.x

我有一个字符串列表,我想要应用一个方法(.split)。我知道这可以通过for循环完成,但是知道python的心态我认为有更好的方法,比如map函数

以下是我想用for循环

编写的内容
config = ['a b', 'c d']

configSplit = [None] * len(config)
for x in range(len(config)):
    configSplit[x] = config[x].split()

configSplit
> [['a', 'b'], ['c', 'd']]

3 个答案:

答案 0 :(得分:5)

您可以使用简单的list comprehension,就像这样

>>> config = ['a b','c d']
>>> [item.split() for item in config]
[['a', 'b'], ['c', 'd']]

如果您想使用map,可以将str.split功能传递给它。但是,Python 3.x的map返回一个可迭代的地图对象。

>>> map(str.split, config)
<map object at 0x7f9843a64a90>

所以,您需要使用list函数将其显式转换为列表,如下所示

>>> list(map(str.split, config))
[['a', 'b'], ['c', 'd']]

答案 1 :(得分:2)

作为@thefourtheye回答的替代方法,您可以使用map

config = ['a b','c d']

new_config = list(map(lambda x: x.split(), config))

print(new_config)
# [['a', 'b'], ['c', 'd']]

答案 2 :(得分:0)

config = ['a b','c d']

创建一个空列表

configSplit = list()

迭代每个项目,拆分,添加到新列表。

for item in config:
    configSplit.append(item.split())