我有一个看起来像这样的字典:
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
