-1
def dict_to_str(d):
    """ (dict) -> str

    Return a str containing each key and value in d. Keys and values are
    separated by a space. Each key-value pair is separated by a comma.

    >>> dict_to_str({3: 4, 5: 6})
    '3 4,5 6'
    """

この関数の本体をどのように記述しますか?

これまでのところ、私は次のものを持っています:

for values in d.values():
    print(values)
for items in dict.keys(d):
    print(items)

しかし、どうやって作るのかわからないので、正しい形式で表示されます。各値/アイテムをリストにしたいので、たとえば、値[0]とアイテム[0]、値[1]とアイテム[1]などを調整できます

4

3 に答える 3

2

使用str.join()とリスト内包表記:

','.join([' '.join(map(str, item)) for item in d.iteritems()])

Python 3 では、 に置き換え.iteritems()ます.items()map()結合する前に、キーと値の両方が文字列であることを確認するために使用されます。

デモ:

>>> d = {3: 4, 5: 6}
>>> ','.join([' '.join(map(str, item)) for item in d.iteritems()])
'3 4,5 6'

順序は任意であることに注意してください。辞書には順序が設定されていません (代わりに、順序はキーの挿入と削除の履歴に依存します)。

これを関数でラップすることは、読者の課題として残されています。

于 2013-07-31T19:42:01.573 に答える
1

私のリスト内包表記を分解するより単純なバージョンは次のとおりです。

def dict_to_str(d):
    lDKeys = d.keys()
    lDValues = d.values()
    lD = []
    for i in range(len(d)):
        lD.append(lDKeys[i]+' '+lDValues[i])
    sD = ','.join(lD)
    return sD
于 2013-07-31T20:13:50.313 に答える
1
def dict_to_str(d):
    lDKeys = d.keys()
    lDValues = d.values()
    sD = ','.join([lDKeys[i]+' '+lDValues[i] for i in range(len(d))])
    return sD
于 2013-07-31T20:08:10.103 に答える