ฉันต้องการสร้างพจนานุกรมใน Python อย่างไรก็ตามตัวอย่างทั้งหมดที่ฉันเห็นกำลังสร้างอินสแตนซ์พจนานุกรมจากรายการ ฯลฯ ..
ฉันจะสร้างพจนานุกรมว่างเปล่าใหม่ใน Python ได้อย่างไร
ฉันต้องการสร้างพจนานุกรมใน Python อย่างไรก็ตามตัวอย่างทั้งหมดที่ฉันเห็นกำลังสร้างอินสแตนซ์พจนานุกรมจากรายการ ฯลฯ ..
ฉันจะสร้างพจนานุกรมว่างเปล่าใหม่ใน Python ได้อย่างไร
คำตอบ:
โทรdict
โดยไม่มีพารามิเตอร์
new_dict = dict()
หรือเพียงแค่เขียน
new_dict = {}
{}
มากกว่าdict()
5 ครั้งกว่า[]
list()
คุณสามารถทำได้
x = {}
x['a'] = 1
การรู้วิธีการเขียนพจนานุกรมที่ตั้งไว้ล่วงหน้ามีประโยชน์ที่จะรู้เช่นกัน:
cmap = {'US':'USA','GB':'Great Britain'}
# Explicitly:
# -----------
def cxlate(country):
try:
ret = cmap[country]
except KeyError:
ret = '?'
return ret
present = 'US' # this one is in the dict
missing = 'RU' # this one is not
print cxlate(present) # == USA
print cxlate(missing) # == ?
# or, much more simply as suggested below:
print cmap.get(present,'?') # == USA
print cmap.get(missing,'?') # == ?
# with country codes, you might prefer to return the original on failure:
print cmap.get(present,present) # == USA
print cmap.get(missing,missing) # == RU
cxlate
ทำให้คำตอบของคุณดูซับซ้อนเกินไป ฉันแค่ให้ส่วนการเริ่มต้น ( cxlate
ตัวเองซับซ้อนเกินไปคุณทำได้return cmap.get(country, '?')
)
KeyError
แทนอย่างชัดเจนยกเว้น (ซึ่งจะจับสิ่งต่าง ๆ เช่นKeyboardInterrupt
และSystemExit
)
>>> dict(a=2,b=4)
{'a': 2, 'b': 4}
จะเพิ่มค่าในพจนานุกรมหลาม
d = dict()
หรือ
d = {}
หรือ
import types
d = types.DictType.__new__(types.DictType, (), {})
ดังนั้นมี 2 วิธีในการสร้าง dict:
my_dict = dict()
my_dict = {}
แต่ตัวเลือกสองตัว{}
นี้มีประสิทธิภาพมากกว่าdict()
บวกกับที่อ่านได้
ตรวจสอบที่นี่
>>> dict.fromkeys(['a','b','c'],[1,2,3])
{'a': [1, 2, 3], 'b': [1, 2, 3], 'c': [1, 2, 3]}