d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}
ฉันมีพจนานุกรม
ฉันจะแยกค่าทั้งหมดของd
ลงในรายการได้l
อย่างไร
d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}
ฉันมีพจนานุกรม
ฉันจะแยกค่าทั้งหมดของd
ลงในรายการได้l
อย่างไร
คำตอบ:
หากคุณจำเป็นต้องใช้เพียงปุ่มพจนานุกรม1
, 2
และการใช้งาน:3
your_dict.keys()
หากคุณต้องการเพียงค่าพจนานุกรม-0.3246
, -0.9185
และการใช้งาน:-3985
your_dict.values()
หากคุณต้องการทั้งคีย์และค่าใช้: your_dict.items()
ซึ่งจะส่งกลับรายการ [(key1, value1), (key2, value2), ...]
tuples
ใช้ values()
>>> d = {1:-0.3246, 2:-0.9185, 3:-3985}
>>> d.values()
<<< [-0.3246, -0.9185, -3985]
หากคุณต้องการค่าทั้งหมดใช้สิ่งนี้:
dict_name_goes_here.values()
หากคุณต้องการคีย์ทั้งหมดใช้สิ่งนี้:
dict_name_goes_here.keys()
หากคุณต้องการรายการทั้งหมด (ทั้งกุญแจและค่า) ฉันจะใช้สิ่งนี้:
dict_name_goes_here.items()
เรียกvalues()
วิธีการบน dict
สำหรับ dicts ที่ซ้อนกันรายการ dicts และ dicts ของ dicts ที่แสดงรายการ ... คุณสามารถใช้
def get_all_values(d):
if isinstance(d, dict):
for v in d.values():
yield from get_all_values(v)
elif isinstance(d, list):
for v in d:
yield from get_all_values(v)
else:
yield d
ตัวอย่าง:
d = {'a': 1, 'b': {'c': 2, 'd': [3, 4]}, 'e': [{'f': 5}, {'g': 6}]}
list(get_all_values(d)) # returns [1, 2, 3, 4, 5, 6]
PS: yield
ผมรัก ;-)
สำหรับ Python 3 คุณต้องการ:
list_of_dict_values = list(dict_name.values())
list()
จำเป็น
หากคุณต้องการค่าทั้งหมดใช้สิ่งนี้:
dict_name_goes_here.values()
d = <dict>
values = d.values()
วิธีดูกุญแจ:
for key in d.keys():
print(key)
ในการรับค่าที่แต่ละคีย์อ้างอิง:
for key in d.keys():
print(d[key])
เพิ่มในรายการ:
for key in d.keys():
mylist.append(d[key])
โดยหลักการแล้วการพิมพ์แบบ Pythonic Duck ควรกำหนดว่าวัตถุสามารถทำอะไรได้บ้างเช่นคุณสมบัติและวิธีการของมัน โดยการดูที่วัตถุพจนานุกรมเราอาจลองเดาว่ามันมีอย่างน้อยหนึ่งอย่างต่อไปนี้: dict.keys()
หรือdict.values()
วิธีการ คุณควรลองใช้วิธีนี้สำหรับการทำงานในอนาคตกับภาษาการเขียนโปรแกรมซึ่งการตรวจสอบชนิดเกิดขึ้นที่รันไทม์โดยเฉพาะอย่างยิ่งผู้ที่มีลักษณะการพิมพ์เป็ด
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
list(your_dict.values())
เพื่อรับรายการ (ไม่ใช่วัตถุ dict_values)