3

私は 14 個の辞書を持っていますが、すべて同じキーの情報 (時刻、日付など) を含んでいますが、値は異なります。辞書が関数の引数としてリストされているときに文をまとめる関数を構築しようとしています。

私が辞書を持っている場合:

dic1 = {'Name': 'John', 'Time': 'morning'}

そして、それらを文字列に連結したい:

print 'Hello ' + dic1['Name']+', good ' + dic1['Time']+ '.'

これについてどうすればいいですか?

*注、申し訳ありませんが、これはエラーを返します:

TypeError: can only concatenate list (not "str") to list
4

3 に答える 3

6

concatenateではなく、interpolateを意味していると思います。

print "Hello %(Name)s, good %(Time)s" % dic1
于 2012-11-30T12:34:31.130 に答える
2

新しいスタイルの文字列フォーマット(python2.6以降)の使用:

print("Hello {Name}, good {Time}.".format(**dic1))

あなたのエラーについては、あなたが上で提供したコードでそれを説明することはできません。リストに文字列を追加しようとすると__add__、次のエラーが発生します。

>>> [45,3] + "foo"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list

ただし、文字列にリストを追加すると(辞書に値としてリストがある場合、サンプルコードで行うことです)、わずかに異なるエラーが発生します。

>>> "foo" + [45,3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'list' objects
于 2012-11-30T12:49:02.637 に答える
-1
web_response = {2L: 67.0, 3L: 13.67, 4L: 10.25, 5L: 11.8, 6L: 11.83}

「web_response」という名前の辞書があります。辞書と文字列を連結するために、コンマ「、」を使用しました

print "web_response=", web_response

出力:

web_response= {2L: 67.0, 3L: 13.67, 4L: 10.25, 5L: 11.8, 6L: 11.83}
于 2015-01-05T10:03:57.957 に答える