ユーザーに数字(1、13、4354など)を入力させるプログラムが必要な場合、どうすればそれを印刷できますか(1、13、4、3、5、4)、それは理にかなっていますか?2桁の場合は結合(31)のように印刷しますが、2桁を超える場合は、同じ行をスペースで結合して別々に印刷します。辞書でこれを実行しようとしましたが、可能だと思います。 、しかし私はそれを行う方法を理解することができませんか?
l = input('Enter the number: ')
if len(l) > 2:
nums = {'1':'one',
'2':'two',
'3':'three',
'4':'four',
'5':'five',
'6':'six',
'7':'seven',
'8':'eight',
'9':'nine'}
elif len(l) == 2:
tens = {'10'}
for k, v in nums.items():
print(k, v)
これは明らかに間違ったコードですが、完成した結果を次のようにしたいと思いますか?前もって感謝します!
辞書からアイテムにアクセスするには、次の操作を実行できますdictionary[key]
。value
返されます。
私の入力がであるとしましょう"8"
。
次に、print nums[l]
(条件ステートメント内で)実行できます"eight"
。これにより、が返されます。
また、条件付き構造の外側に辞書を作成して防止しNameErrors
、どこからでも両方の辞書にアクセスできるようにすると、おそらくより良いでしょう。
入力がある場合は、リスト内包表記との"324"
組み合わせを使用できますstr.join()
。
l = "324"
nums = {'1':'one',
'2':'two',
'3':'three',
'4':'four',
'5':'five',
'6':'six',
'7':'seven',
'8':'eight',
'9':'nine'}
print ' '.join(nums[i] for i in l)
説明:
[nums[i] for i in l]
と同じです:
returned_list = []
for number in l:
returned_list.append(d[number])
str.join()
リスト内のすべてのアイテムをスペースで区切って結合します。だから' '.join(['one', 'two', 'three'])
戻ります'one two three'
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加