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

รายงานปัญหา ดูแหล่งที่มา Nightly

dict เป็นประเภทในตัวที่แสดงการแมปแบบเชื่อมโยงหรือพจนานุกรม พจนานุกรมรองรับการจัดทำดัชนีโดยใช้ d[k] และทดสอบการเป็นสมาชิกหลักโดยใช้ k in d ซึ่งการดำเนินการทั้งสองแบบจะใช้เวลาสม่ำเสมอ พจนานุกรมที่ไม่ได้ตรึงไว้จะเปลี่ยนแปลงได้ และอาจอัปเดตได้ด้วยการกำหนดให้กับ 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 ค่าเริ่มต้นคือ None
ค่าเริ่มต้นที่จะใช้ (แทนไม่มี) หากไม่พบคีย์

items

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 ค่าเริ่มต้นคือ unbound
ค่าเริ่มต้นหากไม่มีคีย์

รายการป๊อป

tuple dict.popitem()

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

ตั้งค่าเริ่มต้น

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 ต้องระบุ
พจนานุกรมของรายการเพิ่มเติม

ค่า

list dict.values()

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