1. ホーム
  2. python

[解決済み] Pythonで辞書にある文字列を両方表示する方法

2022-02-01 06:43:48

質問

リストの名前とメールの両方が印刷されないので困っています。コードの最初の部分はすでに書かれていて、私の試みはforループです。もし誰かが私を助けることができるならば、それは非常に感謝されるでしょう。

以下はその説明です。

contact_emails の各連絡先を表示するための for ループを記述します。与えられたプログラムの出力例です。

[email protected] is Mike Filt  
[email protected] is Sue Reyn  
[email protected] is Nate Arty  

コード

contact_emails = {
'Sue Reyn' : '[email protected]',
'Mike Filt': '[email protected]',
'Nate Arty': '[email protected]'
}

for email in contact_emails:
print('%s is %s' % (email, contact_emails(email)))

解決方法は?

あなたの問題は、角括弧( [] ) の代わりに、括弧 ( () ). というように。

for email in contact_emails:
    print('%s is %s' % (contact_emails[email], email)) # notice the []'s

を使うことをお勧めします。 .items() (になる .iteritems() Python 2.xを使用している場合) の属性が使用されます。 dict の代わりに

for name, email in contact_emails.items(): # .iteritems() for Python 2.x
    print('%s is %s' % (email, name))


を使用することについて言及してくれた@PierceDarraghに感謝します。 .format() は、文字列の書式設定に適したオプションです。

print('{} is {}'.format(email, name))

あるいは、@ShadowRangerさんもおっしゃっているように、プリントの可変数の引数、フォーマットを活用することも良いアイデアでしょう。

print(email, 'is', name)