我想知道如何使用变量中的值为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>
答案 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'}