2016-09-13 11 views
-2

私は、ユーザが夕食に必要なものを入力してから買い物リストを出力するプログラムに取り組んでいます。現在、ユーザーは自分が望む食事を入力することができ、食肉、肉などの順にソートされたリストを印刷します。リストから最初の文字を削除する

私はプログラムがカテゴリー番号なしで各エントリの後に改行を入れて材料を出力するようにしたいが、文字列ではなくリストを扱う際にいくつか問題があった。これまでは、数字を空白で置き換えるか、数字を空白で置き換える正規表現を試しました。

誰かがナチョスで2回入室し、2回のチキンの代わりに2回のチキンを2回印刷する方法を知っている場合、ボーナスポイント。

enter code here 

strog = ["3 egg noddles", "3 beef broth", "2 steak"] 
c_soup = ["2 bone in chicken", "1 carrots", "1 celery", "1 onion", "1  parsley"] 
t_soup = ["3 tomato saucex2", "3 tomato paste", "1 celery"] 
nachos = ["3 chips", "3 salsa", "3 black olives", "2 chicken", "3 cheese"] 
grocery = [] 
done = [] 
food = "" 
while food != done: 
    food = input("Please enter what you would like to eat. Enter done when finished: ") 
    grocery += (food) 
grocery.sort() 
print(grocery) 
+4

'食品=行っている間:!' – RafaelC

+1

'split'は、あなたが探している方法であり、真なることはありませんが。 –

+1

リストの代わりに、辞書を見てみてください。 – MooingRawr

答えて

0

あなたのコードは、他のいくつかの問題がありますが、カテゴリ番号とスペースを解析するnew_strog = [x[2:] for x in strog]を行うことによりstrogたり、リスト全体で一つのアイテムを取得するために(例えば)strog[0][2:]を使用することができます。

0

通常のPython string manipulationとリスト< - >文字列変換(splitjoin)を学ぶ必要があるようです。

このような何か試してみてください:

strog = ["3 egg noddles", "3 beef broth", "2 steak"] 

for ingredient in strog: 
    print(" ".join(ingredient.split()[1:])) 

または無uglified:

strog = ["3 egg noddles", "3 beef broth", "2 steak"] 

for ingredient in strog: 
    pieces_list = ingredient.split() 
    food_list = pieces_list[1:] 
    ingredient_without_number = " ".join(food_list) 
    print(ingredient_without_number) 
+0

これは完全に機能しました。ありがとう!とにかく、私は基本のいくつかを学ぶ必要があるように見えます。このプラクティスはすでに私にまともな量を教えてくれました。 –

関連する問題