使用拆分附加到多个列表

时间:2013-07-31 22:08:28

标签: python

是否可以将'for'循环中的两个语句组合在一起。

num_pro=raw_input("ENTER THE NUMBER OF PRODUCTIONS: ")

right=[];left=[];

for i in range(int(num_pro)):
   l,r=raw_input("ENTER PRODUCTION"+str(i+1)+" : ").split('->')
   right.append(r);left.append(l)

样本输入:E-> abc

2 个答案:

答案 0 :(得分:2)

将元组附加到一个列表,然后使用zip()拆分列表:

entries = []

for i in range(int(num_pro)):
    entries.append(raw_input("ENTER PRODUCTION"+str(i+1)+" : ").split('->'))

left, right = zip(*entries)

zip(*iterable)转置嵌套列表;列成为行。因为您有两个“列”(值对),所以最终会改为两行。

答案 1 :(得分:0)

并非没有使它变得更复杂。每个方法都需要单独调用,唯一的方法是显式地,像你一样,或者循环。

如果你愿意存储整个产品(这不是一个坏主意,因为它保持双方同步),那么只需添加拆分结果。

productions = []

for ...
  productions.append(....split('->'))