-1

是否可以在“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

4

2 回答 2

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)转置嵌套列表;列变成行。因为您有两个“列”(值对),所以您最终会得到两行。

于 2013-07-31T22:14:23.057 回答
0

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

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

productions = []

for ...
  productions.append(....split('->'))
于 2013-07-31T22:14:16.567 回答