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

รายงานปัญหา ดูแหล่งที่มา รุ่น Nightly · 7.4 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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 ฉบับที่มีอยู่เข้าด้วยกัน หากพจนานุกรม 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 required
คีย์ที่จะค้นหา
default ค่าเริ่มต้นคือ None
ค่าเริ่มต้นที่จะใช้ (แทน "ไม่มี") หากไม่พบคีย์

รายการ

list dict.items()

แสดงรายการทูเพลตคีย์-ค่า
{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 ออกจาก dict และแสดงผลค่าที่เชื่อมโยง หากไม่พบรายการที่มีคีย์นั้น ระบบจะไม่นำรายการใดออกและแสดงค่า default ที่ระบุไว้ หากไม่ได้ระบุค่าเริ่มต้น ระบบจะดำเนินการไม่สำเร็จ

พารามิเตอร์

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

popitem

tuple dict.popitem()

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

setdefault

unknown dict.setdefault(key, default=None)

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

พารามิเตอร์

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

อัปเดต

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

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

พารามิเตอร์

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

values

list dict.values()

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