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

รายงานปัญหา ดูแหล่งที่มา Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

dict เป็นประเภทในตัวที่แสดงถึงการแมปแบบเชื่อมโยงหรือพจนานุกรม พจนานุกรมรองรับการจัดทำดัชนีโดยใช้ d[k] และการทดสอบการเป็นสมาชิกที่สำคัญโดยใช้ k in d ซึ่งทั้ง 2 การดำเนินการใช้เวลาคงที่ พจนานุกรมที่ไม่ได้ตรึงจะเปลี่ยนแปลงได้ และอาจได้รับการอัปเดตโดยการกำหนดค่าให้กับ d[k] หรือโดยการเรียกใช้เมธอดบางอย่าง พจนานุกรมสามารถวนซ้ำได้ การวนซ้ำจะให้ลำดับของคีย์ตามลำดับการแทรก การอัปเดตค่าที่เชื่อมโยงกับคีย์ที่มีอยู่จะไม่ส่งผลต่อลำดับการวนซ้ำ แต่การนำคีย์ออกแล้วแทรกกลับจะส่งผลต่อลำดับการวนซ้ำ

d = {0: "x", 2: "z", 1: "y"}
[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, "y"), (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. นิพจน์ Union 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
ค่าเริ่มต้นที่จะใช้ (แทน 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 ออกจากพจนานุกรมและแสดงผลค่าที่เชื่อมโยง หากไม่พบรายการที่มีคีย์ดังกล่าว ให้นำค่าออกและแสดงค่า default ที่ระบุ หากไม่ได้ระบุค่าเริ่มต้น ให้แสดงข้อผิดพลาดแทน

พารามิเตอร์

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

popitem

tuple dict.popitem()

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

setdefault

unknown dict.setdefault(key, default=None)

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

พารามิเตอร์

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

อัปเดต

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

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

พารามิเตอร์

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

values

list dict.values()

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