我希望能够像和list1 = ['a/b','c/d','e/f']
成一个数组。list2= ['a','c','e']
list3 = ['b','d','f']
我会这样:
list1 = ['a/b','c/d','e/f']list2, list3 = map(list, zip(*(x.split('/') for x in list1)))print(list2, list3)# ['a', 'c', 'e'] ['b', 'd', 'f']
您要做的是创建一个生成器,生成一个/
分别由char 左右字符串组成的元组。然后使用zip()
将它们展开为分别由第一元素和第二元素组成的元组。最后,map()
用于将tuple
返回的s 转换zip()
为list
s。
您可以使用str
.split()
方法,在其中指定要用于分割字符串的字符,在这种情况下为'/'
。您需要将此方法应用于列表中的所有元素,因此可以使用:
list1 = ['a/b','c/d','e/f']list2 = [item.split('/')[0] for item in list1]list3 = [item.split('/')[1] for item in list1]
输出:
list2 = ['a', 'c', 'e']list3 = ['b', 'd', 'f']
[b[0] for b in [a.split('/') for a in list1]]['a', 'c', 'e'][b[1] for b in [a.split('/') for a in list1]]['b', 'd', 'f']
一行:
list1 = ['a/b','c/d','e/f']list2, list3 = [x.split('/')[0] for x in list1], [x.split('/')[1] for x in list1]
l2 = [] l3 = [] l1 = ['a/b','c/d','e/f'] for item in l1: item1, item2 = item.split("/") l2.append(item1) l3.append(item2)