是否可以在“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
是否可以在“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
将元组附加到一个列表,然后使用拆分列表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)
转置嵌套列表;列变成行。因为您有两个“列”(值对),所以您最终会得到两行。
并非没有使它更复杂。每个方法都需要单独调用,唯一的方法是像你所做的那样显式地调用,或者在循环中调用。
如果您愿意存储整个产品(这不一定是个坏主意,因为它使双方保持同步),那么只需附加拆分结果即可。
productions = []
for ...
productions.append(....split('->'))