将列表索引拆分为新列表python

时间:2018-04-01 03:06:34

标签: python python-3.x list

我有一个使用python编程实验室的介绍。我想拆分列表:

items = ['40/40', '10/40', '30/40', '4/5', '18/40', '40/40', '76/80', '10/10']

分为两个新列表:

items_1 = ['40','10','30','4','18','40','76','10']

items_2 = ['40','40','40','5','40','40','80','10']

感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

所以这是标准zip单行。当items非空时,它可以正常工作。

items = ['40/40', '10/40', '30/40', '4/5', '18/40', '40/40', '76/80', '10/10']

items_1, items_2 = map(list, zip(*(i.split('/') for i in items)))

如果您对元组而不是列表感到满意,则可以删除map(list(..))构造。

答案 1 :(得分:1)

我建议这样的事情:

items = ['40/40', '10/40', '30/40', '4/5', '18/40', '40/40', '76/80', '10/10']
items_1 = list()
items_2 = list()

for item in items:
  i_1, i_2 = item.split("/") #Split the item into the two parts
  items_1.append(i_1)
  items_2.append(i_2)

结果(来自IDLE shell)

>>> print(items_1)
['40', '10', '30', '4', '18', '40', '76', '10']
>>> print(items_2)
['40', '40', '40', '5', '40', '40', '80', '10']

即使 items为空,它也可以

答案 2 :(得分:0)

首先拆分items的元素(解释here),然后压缩它们(解释为here):

items = ['40/40', '10/40', '30/40', '4/5', '18/40', '40/40', '76/80', '10/10']

items_tuples = map(lambda x: x.split('/'), items)

items_1, items_2 = zip(*items_tuples)

但请注意,如果您在ValueError为空时调用它,则会产生items

答案 3 :(得分:0)

您可以尝试以下方法:

items = ['40/40', '10/40', '30/40', '4/5', '18/40', '40/40', '76/80', '10/10']

print(list(zip(*[i.split('/') for i in items])))

print(list(zip(*(map(lambda x:x.split('/'),items)))))

输出:

[('40', '10', '30', '4', '18', '40', '76', '10'), ('40', '40', '40', '5', '40', '40', '80', '10')]