将数组解析为较小的文本元素列表

时间:2014-02-15 21:50:22

标签: python

我是python的新手,但如果你有一个文本行列表说

["rr tt hh", "qq pp ll"]

如何根据元素之间的空格字符进一步将列表的每个元素拆分为数组。期望的结果是 一个包含以下

的新数组
list 1 position ["rr", "tt", "hh"]
     2 position ["qq", "pp", "ll"]

等等

2 个答案:

答案 0 :(得分:3)

这是一种方法:

>>> l = ["rr tt hh", "qq pp ll"]
>>> list(map(str.split, l))
[['rr', 'tt', 'hh'], ['qq', 'pp', 'll']]

如果您对可迭代而非外部列表感到满意,则可以删除list()调用。

另一种方法是

>>> [el.split() for el in l]
[['rr', 'tt', 'hh'], ['qq', 'pp', 'll']]

答案 1 :(得分:2)

字符串split()方法根据分隔符将字符串拆分为子字符串列表。如果未指定分隔符,则默认为空格' '

>>> best_list_ever = ['rr tt hh', 'qq pp ll']
>>> best_list_ever[0]
'rr tt hh'
>>> best_list_ever[0].split()
['rr', 'tt', 'hh']
>>> best_list_ever[1].split()
['qq', 'pp', 'll']

@ NPE的第一种方法最简洁,但使用这些知识可以做到:

[x.split() for x in best_list_ever]