python:将字典修改为字符串

时间:2013-07-17 04:42:48

标签: python file dictionary

以下是我得到的代码。但是,我不知道如何摆脱最后一个逗号。 我只想要用空格分隔值,然后用逗号分隔它与下一个键分开。

另外,关于文件的问题。 如果我打开一个文件并阅读它,并希望再次读取该文件,是否无法将光标移到文件的开头而不关闭并再次打开文件?

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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'

P.S - d.items是一个函数,你不能迭代它,你需要调用函数并迭代返回的列表。

对于您的其他问题,您可以fileVar.seek(0)