2012-03-04 18 views
2

Pythonの辞書と複数のdictの[]

dict = { 1:"one", 2:"two", 3:"three", 4:"four", 5:"five", 
    6:"six", 7:"seven", 8:"eight", 9:"nine"}; 

はその後、私は[Y]は、このようなyはそのユーザの入力した後に分割されているときのように、変数を取ることができるかまたは場合dictのかを知りたいinoutの

x = raw_input(("enter number: ")) 
y = x.split 

を求めます。誰も助けることができますか?

+10

をあなたは基本的にための組み込みコンストラクタを交換しているので、 'dict'をごdictsに名前を付けないでください。 'dict'タイプです。 –

答えて

3

リストを使って辞書にインデックスを付けることはできませんが、ループ、リストの理解、またはジェネレータの表現を使用できます。このような何か:

digits = {'1':'one', '2':'two', ...} 
x = raw_input("enter number: ") 
y = ' '.join(digits[number] for number in x) 
+0

私は理解したところから、入力後に12のような数字をとり、辞書から空白に追加します。それで1つが追加され、その数が完了するまで「1」に2を加えますか? – glors

+0

これは「リストの理解」と呼ばれています。 @glors; – alexis

+0

; Jeremyが1行目の最後に追加した '...'は、*このシーケンスを続けることを意味します(この場合、 '9'または' 0'のように)。二行目、私はあなたが得ると思います。 3行目は言う。 '' '.join'。そこで、Jeremyは '' xの数字のための数字 ''の各部分の間に '''(空の)文字を持ってきています。 'for number in x'で始まります。その後、辞書をデータ型としてチェックアウトします。 – Droogans

5

いくつかのヒント:

  1. はあなたの辞書に0: "zero"を含めます。

  2. ライン

    y = x.split 
    

    はメソッドx.splitを呼び出すことはありません - それは単にyにメソッド自体を割り当てます。文字列の文字を取得するには

  3. 、あなたはそれを反復処理することができます。

    for c in my_string: 
        print c 
    
+0

速い返信をいただきありがとうございます。 私は0: "zero"を辞書に追加しました プログラムの前に入力をintに変換するべきですか? と私は宿題タグのヒントについては – glors

+0

+1を繰り返して何を繰り返すべきか分からない。 – Droogans

+0

@Droogans:宿題タグを追加するのはSvenだったことに注意してください。誰もがポスターが添付されたタグを無視したようなわけではありません。 –