这是我的清单:
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 ')
答案 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']