对列表进行迭代,以将一个方法应用于每个成员



我有一个要应用方法(.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']]

您可以使用简单的列表理解,比如这个

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

如果您想使用map,可以将str.split函数传递给它。但是,Python3.x的map返回了一个可迭代的映射对象。

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

因此,您需要使用list函数将其显式转换为列表,如

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

作为@thefortheye的wser的替代方案,您可以使用map:

config = ['a b','c d']
new_config = list(map(lambda x: x.split(), config))
print(new_config)
# [['a', 'b'], ['c', 'd']]
config = ['a b','c d']

创建一个空列表

configSplit = list()

遍历每个项目,拆分,添加到新列表中。

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

最新更新