如何在Python dict的值前附加键?

时间:2019-02-19 10:21:07

标签: python python-3.x dictionary

我有一个dict

x = {'[a]':'(1234)', '[b]':'(2345)', '[c]':'(xyzad)'}

现在我想将键附加在值之前,所以我的预期输出是:

{'[a]': '[a](1234)', '[b]': '[b](2345)', '[c]': '[c](xyzad)'}

我可以使用for循环来完成此操作,如下所示:

for k,v in x.items():
    x.update({k:k+v})

我正在寻找有效的方法,还是应该坚持目前的做法?

3 个答案:

答案 0 :(得分:5)

您的方法似乎很好。您还可以使用字典理解,以获得更简洁的解决方案:

x = {'[a]':'(1234)', '[b]':'(2345)', '[c]':'(xyzad)'}

{k: k+v for k,v in x.items()}
# {'[a]': '[a](1234)', '[b]': '[b](2345)', '[c]': '[c](xyzad)'}

答案 1 :(得分:0)

另一种方式:

x = {'[a]':'(1234)', '[b]':'(2345)', '[c]':'(xyzad)'}
dict(((key, key + x[key]) for key in x))
>>>{'[a]': '[a](1234)', '[b]': '[b](2345)', '[c]': '[c](xyzad)'}

答案 2 :(得分:0)

对于较小型的词典,dictionary comprehension的{​​{1}}解决方案是最好的。

由于您提到数据集很大,并且您希望避免出现@yatu循环,因此推荐使用for

  1. 从字典'x'创建熊猫数据框
  2. 转换数据框并写入新字典

代码:

pandas

对于大型数据集,这会更快,但我不确定如何比较时间。