繁体   English   中英

Python:将字典修改为字符串

[英]python: modifying dictionary to string

下面是我得到的代码。 但是,我不知道如何删除最后一个逗号。 我只希望键与值之间用空格分开,然后在其后用逗号将其与下一个键分开。

另外,关于文件的问题。 如果我打开一个文件并读取它,并想再次读取该文件,是否有办法在不再次关闭并打开文件的情况下将光标移到文件的开头?

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

使用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)

只需返回除最后一个字符以外的所有字符串,就像这样-

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM