2017-12-17 8 views
2

私はのための課題とリストと別の文字

n = 4 
l=[] 
t = [] 
for i in range(n): 
    line = input() 
    if i%2 == 0: 
     t += line 
    else: 
     l+=line 
for i in range(len(l)): 
    print(l[i]) 
for i in range(len(t)): 
    print(t[i]) 

いくつかの文章の順序を変更したいスクリプトをやっている私は、順に入力、次の行:

I like Trains 
I like apples 
I like pears 
I like bananas 

I

I like apples, 
I like bananas, 
I like Trains, 
I like pears, 

ただし、印刷しないで別の文字を印刷します

答えて

2

を追加するのではなく、リストを拡張しています。 Extendingは、文字列からリストに別々の要素を追加します。

代わりの+=list.append()使用:それはさておき

t.append(line) 

l.append(line) 

を、あなたは大幅にあなたの印刷ループを簡素化することができます。

for line in l: 
    print(line) 
for line in t: 
    print(line) 

あなたはprint()全体のリストを渡し、各値を印刷し、それを伝えることができます:あなたが直接ループリスト超えると値を取得することができ、range()でインデックスを生成する必要はありません

print(*l, sep='\n') 
print(*t, sep='\n') 
+0

を言ったように?/nとは何ですか?申し訳ありませんが、2つの引数を指定してprint()を使用したことがありません... – NoCUBes

+0

@NoCUBes: '\ n'は、改行のエスケープシーケンスです。端末またはコンソールまたはテキストエディタにその行が終了し、続くテキストの新しい行。 'function(* )'は、(式によって生成された)シーケンスからすべての値を取り出し、別々の引数として値を適用するようにPythonに指示します。 'l = ['foo'、 'bar']'なら、 'print(* l)'は 'print( 'foo'、 'bar')'と同じものになります。だから 'print(* l、sep = '\ n')'は 'l 'のすべての値を別々に出力し、それぞれの間に改行を書く。 –

+0

print(* l)は以下のことを意味します:リストlのすべての項目を印刷します。 sep = "\ n"を使うと、各項目は改行で始まります。 sep = ";"を使用すると、各項目の後に ";"印刷されます。物事を簡単にするのはいたるところにある方法です。 –

0
n = 4 
l = [] 
t = [] 
for i in range(n): 
    line = input(">") 
    if i % 2 == 0: 
     t.append(line) 
    else: 
     l.append(line) 
for i in range(len(l)): 
    print(l[i]) 
for i in range(len(t)): 
    print(t[i]) 

出力

:間での改行

それとも...マルタインはない正確にプリント(L *、9月= "/ N")がどのように動作する

n = 4 
l = [] 
t = [] 
for i in range(n): 
    line = input(">") 
    if i % 2 == 0: 
     t.append(line) 
    else: 
     l.append(line) 

print(*l, sep="\n") 
print(*t, sep="\n") 

出力

>1 line 
>2 line 
>3 line 
>4 line 
2 line 
4 line 
1 line 
3 line 
>>> 
関連する問題