2016-09-30 16 views
2

私はこれを2日間続けています。これは何を割り当て状態である:listToPrint = ['apples', 'bananas', 'tofu', 'cats']で、コンマとスペースで区切られたすべての項目にリストを出力するプログラムを作成「と」最後の前に挿入:最後の項目の前に "and"という単語をカンマで区切って表示します。

は、あなたがこのようにリスト値を持っていると言う

項目。たとえば、上記のリストは 'apples, bananas, tofu, and cats'と表示されます。しかし、あなたのプログラムは上記のものだけでなく、どんなリストでも動作できるはずです。このため、印刷するリストが上記のリストより短いか長い場合は、ループを使用する必要があります。

これは私がこれまで持っているものされています。ここでは

listToPrint = [] 
while True: 
    newWord = input("a, b, and c ") 
    if newWord == "": 
     break 
    else: 
     listToPrint.append(newWord) 
+0

あなたはどのような問題がありますか?上で使用している 'while'ループは、あなたが記述したことを行うべきです。 –

+0

リックさん、ありがとうございました。それは私が思ったことですが、それはあまりにも単純な修正のようです。だから、私がリストに追加するつもりなら、どこに挿入すればいいのですか?私は単純に入力からの加算または減算を続けますか?リストはどこかでグローバルリストに残ってはいけませんか?私はこれでかなり新しいので、少し混乱しています。 – tinabina22

+0

私は、初心者として適切な質問をすることは難しいと理解していますが、結果として生じている問題を理解することも困難です。入力行と 'listToPrint.append(newWord)'行は、ループが起こるたびに実行されます。それらはwhileループの本体の内側にあります。そのボディは 'break'に出会うたびに実行されます。 –

答えて

0

は、私はそれを行うだろうかですが、これは学校のためである場合は注意してください。私が下で行ったことのいずれかが、まだカバーされていない機能やテクニックを使用している場合は、インストラクターがあなたに嫌になるでしょう。

listToPrint = ['a', 'b', 'c'] 

def list_to_string(L, sep = '', last_sep = None): 
    if last _sep is None: 
     return sep.join(L) 
    else: 
     return sep.join(L[:-1]) + last_sep + L[-1] 

print(list_to_string(listToPrint, sep = ', ', last_sep = ', and ')) 

はここで初心者のバージョンのもう少しです:

listToPrint = ['a', 'b', 'c'] 
list_length = len(listToPrint) 

result = "" 
count = 0 
for item in listToPrint: 
    count = count + 1 
    if count == list_length: 
     result = result + "and " + item 
    else: 
     result = result + item + ", " 

この1つは、リスト内の一つのアイテムだけでは動作しません。

1

あなたが表示したコードは、あなたの割り当てが望むものとは異なる問題を解決しているようです。割り当てはからの値でprintに集中していますが、コードはすべて約inputのユーザーからのアイテムであり、リストに入れられています。 1つを実行してからもう1つを実行するのは理にかなっていますが、コメント内で指定した割り当てについては、inputのコードは完全に無関係です。ここで

は、私は(おそらくあなたはまだ理解していないコードで)その割り当てを解決したい方法は次のとおりです。

print("{}, and {}".format(", ".join(list_to_print[:-1]), list_to_print[-1])) 

より「初心者に優しい」アプローチがより次のようになります。

for item in list_to_print[:-1]: 
    print(item, end=', ') 
print('and', list_to_print[-1]) 
+0

ありがとう、これは働いた。 list_to_print [: - 1]内のアイテム: print(item、end = '、') print( 'and'、list_to_print [-1]) – tinabina22

-1

初心者バージョン:

x = ['apples', 'bananas', 'tofu', 'cats'] 

print("'", end='') 

for i in range(len(x)-2): 

    print(x[i], end=', ') 

print(str(x[-2])+' and '+str(x[-1]),end='') 

print("'") 

出力:'apples, bananas, tofu and cats'

-1
#printing the first element sep. so the list works  
print(listToPrint[0], end="") 

for i in range(1, len(listToPrint)-1): 

    print("," + listToPrint[i], end="") #this prints the middle elements 

if(len(listToPrint) > 1): 

    print(" and " + listToPrint[-1], end="") 
関連する問題