Python - 如何使用变量中的值添加字典键

时间:2017-08-13 07:47:16

标签: python python-3.x

我想知道如何使用变量中的值为Python 3.x中的字典创建新键

例如

{'k': 'Doe'}

我为new_dictionary

获得以下内容
{'first_name': 'Jane', 'last_name': 'Doe'}

如何获取new_dictionary的输出?

new_dictionary[k] = v

解决方案(来自下方):

<?xml version="1.0" encoding="utf-8" ?>
<books>    
  <book category="Fiction" >
     <author>Jack Kerouac</author>
     <title>On the Road</title>
 </book>

  <book category="IT" >
     <author>Stephen Walther</author>
     <title>ASP.NET Unleashed</title>
 </book>     
</books>

6 个答案:

答案 0 :(得分:3)

使用属性表示法new_dictionary.k,您只需设置'k'的文字值。而是使用索引表示法:

person = {'first_name': 'Jane', 'last_name': 'Doe'}
new_dictionary = {}
for k, v in person.items():
   new_dictionary[k] = v

奖励:这也适用于其他语言,例如JavaScript。

答案 1 :(得分:1)

Jonathan Eunice的回答确实有效:

for k, v in person.items():
    new_dictionary[k] = v

但是,您忘记删除代码中的点:

new_dictionary.[k] = v

应该是:

new_dictionary[k] = v

答案 2 :(得分:1)

我认为你正在学习python,所以你需要不同的方法来复制和字典到其他字典。

以下是一些方法: -

#First step create a dictionary
a = {"first_name":"Jon", "last_name":"Doe"}

#Approach 1: Using List comprehension
b = {key:value for key, value in a.items()}

#Approach 2: Initialise new dictionary and loop first to create new 
c = {}
for key, value in a.items():
    c[key] = value 

#Approach 3:Using Deep copy function
import copy    
d = copy.deepcopy(a)

#Approach 4:Using Update function of dictionary
e = {}    
e.update(a)

#Finally Print all dicts
print (a, b, c, d, e)

#Below is Output of a,b,c,d,e:-

({'first_name': 'Jon', 'last_name': 'Doe'}, {'first_name': 'Jon', 'last_name': 'Doe'}, {'first_name': 'Jon', 'last_name': 'Doe'}, {'first_name': 'Jon', 'last_name': 'Doe'}, {'first_name': 'Jon', 'last_name': 'Doe'})  

答案 3 :(得分:1)

尝试`

怎么样?
 person = {'first_name': 'Jane', 'last_name': 'Doe'}
 new_dictionary = {}
 for k in person.keys():
     new_dictionary[k] = person[k]

 print(new_dictionary)`

答案 4 :(得分:0)

new_dictionary = {**person}

这将使用new_dictionary字典中的键值对创建person

之后,您可以按如下方式更新它:

new_dictionary = {**new_dictionary, **person_2}

这只适用于Python 3.5+(PEP 448中提出),感谢Mark Tolonen!

答案 5 :(得分:0)

您也可以尝试这种方式:

person = {'first_name': 'Jane', 'last_name': 'Doe'}
new_dictionary = {}
for k, v in person.items():
   new_dictionary.setdefault(k, v)

print(new_dictionary)

输出:

{'first_name': 'Jane', 'last_name': 'Doe'}