Python - 使用分隔符拆分字符串列表并添加到新列表

时间:2018-02-06 00:12:03

标签: python

这是我的清单:

names = ['blue v orange', 'white v black', 'red v brown']  

我想把它们拆分为' v'并附加到这样的新列表:

['blue', 'white', 'red'] #first
['orange', 'black', 'brown'] #second

分裂后如何追加它们?以下代码不起作用:

first = []
second = []

for x in names:
    first, second = x.split(' v ')

3 个答案:

答案 0 :(得分:4)

您可以使用zip

names = ['blue v orange', 'white v black', 'red v brown']  
first, second = map(list, zip(*map(lambda x:x.split(' v '), names)))  
print(first)
print(second)

输出:

['blue', 'white', 'red'] 
['orange', 'black', 'brown']

答案 1 :(得分:2)

这是一个pythonic解决方案:

names = ['blue v orange', 'white v black', 'red v brown']

x, y = list(zip(*(k.split(' v ') for k in names)))

x  # ('blue', 'white', 'red')
y  # ('orange', 'black', 'brown')

答案 2 :(得分:1)

只需单独附加到每个列表,但请注意不要重复使用变量名称:

names = ['blue v orange', 'white v black', 'red v brown']  
first = []
second = []
for x in names:
    f, s = x.split(' v ')
    first.append(f)
    second.append(s)

print(first, second)

结果:

['blue', 'white', 'red'] ['orange', 'black', 'brown']