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 回答