我有一个看起来像这样的字典:

d = {'a': 'b', 'c': 'd'}


现在,当我使用str(d)制作str时,我得到

>> "{'a': 'b', 'c': 'd'}"


但我需要它看起来像这样:

>> "a=b; c=d; "


我创建了这段代码来做到这一点:

b = ''
for k, v in d.items():
    b += str(k) + '=' + str(v) + '; '


有没有一种方法可以达到相同的效果,但是可以使用内联操作或其他更整洁的方法来实现,而无需使用for循环?

最佳答案

她是使用''.join()的另一种方式:

';'.join(map('='.join, d.items()))


返回值:

'a=b;c=d'


假设最后一个;是多余的。如果没有,您将获得“精确”输出,如下所示:''.join([f'{k}={v}; ' for k,v in d.items()])



时间:

%timeit ';'.join(map('='.join, d.items()))          #1000000 loops,best of 3: 810 ns per loop
%timeit ';'.join(['='.join(x) for x in d.items()])  #1000000 loops,best of 3: 956 ns per loop
%timeit ';'.join([f'{k}={v}' for k,v in d.items()]) #1000000 loops,best of 3: 872 ns per loop

关于python - 用python中的字典制作字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54873565/

10-10 22:34