0

以下は私が得たコードです。ただし、最後のコンマを取り除く方法がわかりません。キーと値をスペースで区切り、その後にコンマを置いて次のキーと区切るだけです。

また、ファイルに関する質問です。ファイルを開いて読み取り、もう一度ファイルを読み取りたい場合、ファイルを閉じて再度開くことなく、カーソルをファイルの先頭に移動する方法はありませんか?

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

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

    >>> dict_to_str({3: 4, 5: 6})
    '3 4,5 6'
    """ 
    s = ''
    for (k, v) in d.items:
        s = s + str(k) + " " + str(v) + ','
    return s
4

2 に答える 2

4

join代わりに使用してください:

return ', '.join([str(key) + ' ' + str(value) for key, value in d.items()])

またはより詳細に:

items = []

for key, value in d.items():
    items.append('{0} {1}'.format(key, value))

return ', '.join(items)

ファイルに関しては、最初に戻ることができます:

handle.seek(0)
于 2013-07-17T04:44:51.163 に答える
2

次のように、最後の文字を除くすべての文字列を返すだけです-

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

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

    >>> dict_to_str({3: 4, 5: 6})
    '3 4,5 6'
    """ 
    s = ''
    for (k, v) in d.items():
        s += str(k) + " " + str(v) + ','
    return s[:-1] 

出力テスト -

>>> dict_to_str({1:2, 3:4})
'1 2,3 4'

PS -d.items関数であり、それを反復処理することはできません。関数を呼び出して、返されたリストを反復処理する必要があります。

あなたの他の質問については、あなたはただ行うことができますfileVar.seek(0)

于 2013-07-17T04:44:58.397 に答える