-1

「for」ループ内で 2 つのステートメントを結合することは可能ですか。

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

タプルを1 つのリストに追加し、次を使用してリストを分割します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)ネストされたリストを転置します。列が行になります。2 つの「列」(値のペア) があるため、代わりに 2 つの行になります。

于 2013-07-31T22:14:23.057 に答える
0

それをより複雑にすることなくではありません。各メソッドは個別に呼び出す必要があり、それを行う唯一の方法は、行ったように明示的に行うか、ループ内で行うことです。

プロダクション全体を保存したい場合 (両側の同期を維持するため、必ずしも悪い考えではありません)、代わりに分割結果を追加します。

productions = []

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