การพิมพ์ตามคําบอก

dict เป็นประเภทในตัวที่แสดงการแมปแบบเชื่อมโยงหรือพจนานุกรม พจนานุกรมรองรับการจัดทำดัชนีโดยใช้ d[k] และทดสอบการเป็นสมาชิกหลักโดยใช้ k in d การดำเนินการทั้ง 2 อย่างจะต้องใช้เวลาคงที่ พจนานุกรมที่ไม่ได้ตรึงไว้จะเปลี่ยนแปลงได้ และอาจอัปเดตได้ด้วยการกำหนดให้กับ d[k] หรือโดยการเรียกใช้บางวิธี พจนานุกรมใช้งานง่าย การทำซ้ำจะให้ลำดับของคีย์ในใบสั่งซื้อการใส่โฆษณา ลำดับการทำซ้ำจะไม่ได้รับผลกระทบจากการอัปเดตค่าที่เชื่อมโยงกับคีย์ที่มีอยู่ แต่จะได้รับผลกระทบจากการนำคีย์ออกแล้วเสียบกลับเข้าไปใหม่
d = {0: 0, 2: 2, 1: 1}
[k for k in d]  # [0, 2, 1]
d.pop(2)
d[0], d[2] = "a", "b"
0 in d, "a" in d  # (True, False)
[(k, v) for k, v in d.items()]  # [(0, "a"), (1, 1), (2, "b")]

การสร้างพจนานุกรมมี 4 วิธีดังนี้

  1. นิพจน์พจนานุกรม {k: v, ...} จะสร้างพจนานุกรมใหม่ที่มีรายการคีย์/ค่าที่ระบุ โดยจะแทรกตามลำดับที่ปรากฏในนิพจน์ การประเมินจะไม่สำเร็จหากนิพจน์ทั่วไป 2 นิพจน์มีค่าเท่ากัน
  2. ความเข้าใจในพจนานุกรม {k: v for vars in seq} จะแสดงพจนานุกรมใหม่ที่มีการแทรกคู่คีย์/ค่าตามลำดับการวนซ้ำ อนุญาตให้มีรายการที่ซ้ำกัน: การแทรกคีย์แรกของคีย์ที่กำหนดจะเป็นตัวกำหนดตำแหน่งในลำดับ และการแทรกรายการสุดท้ายจะเป็นตัวกำหนดค่าที่เกี่ยวข้อง
    {k: v for k, v in (("a", 0), ("b", 1), ("a", 2))}  # {"a": 2, "b": 1}
    {i: 2*i for i in range(3)}  # {0: 0, 1: 2, 2: 4}
    
  3. การเรียกฟังก์ชัน dict ในตัวจะแสดงพจนานุกรมที่มีรายการที่ระบุ ซึ่งจะแทรกตามลำดับอาร์กิวเมนต์ อาร์กิวเมนต์ตำแหน่งก่อนตั้งชื่อ อนุญาตให้ใช้คีย์ซ้ำกันได้เช่นเดียวกับความเข้าใจ
  4. นิพจน์สหภาพ x | y จะให้พจนานุกรมใหม่โดยการรวมพจนานุกรม 2 ฉบับที่มีอยู่เข้าด้วยกัน หากพจนานุกรมทั้งสองมีคีย์ k เหมือนกัน ค่าของคีย์ในพจนานุกรมด้านขวา (กล่าวคือ y[k]) จะชนะ ตัวแปร |= ของโอเปอเรเตอร์สหภาพจะแก้ไขพจนานุกรมในตำแหน่งเดิม ตัวอย่าง:
    d = {"foo": "FOO", "bar": "BAR"} | {"foo": "FOO2", "baz": "BAZ"}
    # d == {"foo": "FOO2", "bar": "BAR", "baz": "BAZ"}
    d = {"a": 1, "b": 2}
    d |= {"b": 3, "c": 4}
    # d == {"a": 1, "b": 3, "c": 4}

สมาชิก

ล้าง

None dict.clear()

นำรายการทั้งหมดออกจากพจนานุกรม

รับ

unknown dict.get(key, default=None)

แสดงผลค่าสำหรับ key หาก key อยู่ในพจนานุกรม มิฉะนั้น default หากไม่ได้ระบุ default ค่าเริ่มต้นจะเป็น None ดังนั้นวิธีนี้จึงไม่ทำให้เกิดข้อผิดพลาด

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
key ต้องระบุ
กุญแจสำคัญที่ควรมองหา
default ค่าเริ่มต้น = ไม่มี
ค่าเริ่มต้นที่จะใช้ (แทน "ไม่มี") หากไม่พบคีย์

รายการ

list dict.items()

แสดงรายการคีย์-ค่า Tuples:
{2: "a", 4: "b", 1: "c"}.items() == [(2, "a"), (4, "b"), (1, "c")]

กุญแจ

list dict.keys()

แสดงรายการคีย์:
{2: "a", 4: "b", 1: "c"}.keys() == [2, 4, 1]

ป็อป

unknown dict.pop(key, default=unbound)

นำ key ออกจากคำสั่งและแสดงผลค่าที่เกี่ยวข้อง หากไม่พบรายการที่มีคีย์ดังกล่าว ให้นำข้อมูลใดๆ ออกและแสดงผลค่า default ที่ระบุ หากไม่ได้ระบุค่าเริ่มต้นไว้ ระบบจะล้มเหลวแทน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
key ต้องระบุ
กุญแจ
default ค่าเริ่มต้น = ไม่เชื่อมโยง
ค่าเริ่มต้นหากไม่มีคีย์

รายการป๊อป

tuple dict.popitem()

นำออกและแสดงผล (key, value) คู่แรกจากพจนานุกรม popitem มีประโยชน์ในการทำซ้ำในพจนานุกรมแบบทำลายล้าง ซึ่งมักจะใช้ในอัลกอริทึมของชุด หากพจนานุกรมว่างเปล่า จะเรียกใช้ popitem ไม่สำเร็จ

setdefault

unknown dict.setdefault(key, default=None)

หาก key อยู่ในพจนานุกรม ให้แสดงผลค่า หากไม่เห็น ให้แทรกคีย์ที่มีค่าเป็น default แล้วแสดงผล default default จะมีค่าเริ่มต้นเป็น None

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
key ต้องระบุ
กุญแจ
default ค่าเริ่มต้น = ไม่มี
ค่าเริ่มต้นหากไม่มีคีย์

อัปเดต

None dict.update(pairs=[], **kwargs)

อัปเดตพจนานุกรมก่อนด้วยอาร์กิวเมนต์ตำแหน่งที่ไม่บังคับ pairs จากนั้นจึงอัปเดตอาร์กิวเมนต์คีย์เวิร์ดที่ไม่บังคับ หากมีอาร์กิวเมนต์ตำแหน่ง อาร์กิวเมนต์นั้นต้องเป็น dict, วนซ้ำ หรือ ไม่มี หากเป็นคำสั่ง ระบบจะแทรกคู่คีย์/ค่าลงในคำสั่งนี้ หากเป็นการทำซ้ำได้ จะต้องระบุลำดับคู่ (หรือชุดย่อยอื่นๆ ที่มีความยาว 2) โดยแต่ละคู่จะถือเป็นคู่คีย์/ค่าที่จะแทรก อาร์กิวเมนต์คีย์เวิร์ดแต่ละรายการ name=value จะทำให้แทรกคู่ชื่อ/ค่าลงในคำสั่งนี้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
pairs ค่าเริ่มต้น = []
อาจเป็นพจนานุกรมหรือรายการ รายการจะต้องเป็นแบบทวีคูณหรือรายการที่มีองค์ประกอบ 2 อย่าง ได้แก่ คีย์และค่า
kwargs ต้องระบุ
พจนานุกรมของรายการเพิ่มเติม

ค่า

list dict.values()

แสดงรายการค่าต่อไปนี้
{2: "a", 4: "b", 1: "c"}.values() == ["a", "b", "c"]