如果我有一个包含str的列表:
mylist = ['hello how', 'are', 'you']
我怎样才能遍历mylist
以便得到:
newlist = ['hello', 'how', 'are', 'you']
我已经尝试过定期循环,但它不会起作用,因为列表的单个元素中有2个单词我想要拆分成它们自己的元素。
答案 0 :(得分:2)
最简单的方法是加入元素然后再次拆分:
mylist = " ".join(['hello how', 'are', 'you']).split()
#['hello', 'how', 'are', 'you']
答案 1 :(得分:0)
您可以使用正则表达式:
import re
mylist = ['hello how', 'are', 'you']
new_data = [i for b in map(lambda x:re.findall('[a-zA-Z]+', x), mylist) for i in b]
输出:
['hello', 'how', 'are', 'you']
答案 2 :(得分:0)
这应该有所帮助。
mylist = ['hello how', 'are', 'you']
res = []
for i in mylist:
res += i.split()
print res
<强>输出:强>
['hello', 'how', 'are', 'you']
答案 3 :(得分:0)
将itertools.chain
和str.split
与生成器理解结合使用是一种方式。
from itertools import chain
mylist = ['hello how', 'are', 'you']
res = list(chain(*(x.split(' ') if ' ' in x else [x] for x in mylist)))
['hello', 'how', 'are', 'you']