การหาผลรวมค่าของ Python dictionary ทำได้ง่ายมาก คุณสามารถดึงค่าทั้งหมดเป็นลิสต์โดยใช้ dict.values() แล้วเรียกเมธอด sum เพื่อหาผลรวม ตัวอย่าง d = { foo: 10, bar: 20, baz: 30 } print(sum(d.values())) ผลลัพธ์ 60
การหาผลรวมค่าของ Python dictionary ทำได้ง่ายมาก คุณสามารถดึงค่าทั้งหมดเป็นลิสต์โดยใช้ dict.values() แล้วเรียกเมธอด sum เพื่อหาผลรวม ตัวอย่าง d = { foo: 10, bar: 20, baz: 30 } print(sum(d.values())) ผลลัพธ์ 60
คุณสามารถใช้ออบเจ็กต์ที่แฮชได้ (hashable) ใดๆ เช่น int, string เป็นต้น เป็นคีย์ใน Python dict คุณต้องแยกมันจากค่าด้วยตัวคั่น : ค่าสามารถเป็นประเภทออบเจ็กต์ใดๆ ก็ได้ คู่คีย์-ค่าต่อเนื่องต้องคั่นด้วยจุลภาค
โมดูล JSON เป็นไลบรารีที่น่าเชื่อถือมากสำหรับการ serialize Python dictionary เป็น string แล้วกลับมาเป็น dictionary อีกครั้ง ฟังก์ชัน dumps แปลง dict เป็น string ตัวอย่าง import json my_dict = { foo: 42, bar: { baz: Hello, poo: 124.2 } } my_json = json.dumps(my_dict) prin
วิธีที่ง่ายที่สุดในการแปลงสเปรดชีตเป็น Python dictionary คือใช้ไลบรารีภายนอกอย่าง pandas ซึ่งมีฟีเจอร์ที่ช่วยเหลืออย่าง to_dict บนออบเจ็กต์ Excel คุณสามารถใช้ได้ดังนี้: ตัวอย่าง from pandas import * xls = ExcelFile(my_file.xls) data = xls.parse(xls.sheet_names[0]) print(data.to_dict()) ผลลัพธ์ {id
Dicts คือ hash tables ไม่ได้ใช้ tree searching การค้นหาคีย์เป็นการดำเนินการ nearly constant time (Amortized constant) ไม่ว่าขนาดของ dict จะใหญ่แค่ไหน มันสร้างแฮชของคีย์ แล้วหาตำแหน่งที่เกี่ยวข้องกับค่าแฮช หากเจอที่อยู่ที่ชน (collision listed address) จะเริ่มอัลกอริทึมแก้ไขการชนเพื่อหาค่าจริง สิ่งนี
คุณสามารถดึงค่าทั้งหมดได้โดยการเรียก dict.values() แล้วเรียก , .join บนค่าเหล่านั้นเพื่อต่อค่าใน dict คั่นด้วยจุลภาค ตัวอย่าง a = {foo: Hello, bar: World} vals = a.values() concat = , .join(vals) print(concat) ผลลัพธ์ Hello, World
Dicts คือ hash tables ไม่ได้ใช้ tree searching การค้นหาคีย์เป็นการดำเนินการ nearly constant time (Amortized constant) ไม่ว่าขนาดของ dict จะใหญ่แค่ไหน มันสร้างแฮชของคีย์ แล้วหาตำแหน่งที่เกี่ยวข้องกับค่าแฮช หากเจอที่อยู่ที่ชน (collision listed address) จะเริ่มอัลกอริทึมแก้ไขการชนเพื่อหาค่าจริง สิ่งนี
เพื่อสร้าง XML จาก Python dictionary คุณต้องติดตั้งแพ็กเกจ dicttoxml สามารถติดตั้งได้ด้วย: $ pip install dicttoxml หลังจากติดตั้งแล้ว คุณสามารถใช้เมธอด dicttoxml เพื่อสร้าง XML ตัวอย่าง a = { foo: 45, bar: { baz: Hello } } xml = dicttoxml.dicttoxml(a) print(xml) ผลลัพธ์ b45He
คุณสามารถทำได้โดยการรวม dictionary อื่นเข้ากับ dictionary แรก ใน Python 3.5+ คุณสามารถใช้ออเปอเรเตอร์ ** เพื่อ unpack dictionary และรวมหลาย dictionary ได้ด้วยไวยากรณ์ดังนี้: ไวยากรณ์ a = {foo: 125} b = {bar: hello} c = {**a, **b} print(c) ผลลัพธ์ {foo: 125, bar: hello} ไม่รองรับในเวอร์ชันเก่า คุณ
คุณสามารถใช้ list comprehension เพื่อตัดคีย์ใน Python dict ได้ วนลูปผ่านคีย์ใน dict และสร้าง dict ใหม่ด้วยคีย์ที่ถูกตัดแล้ว ตัวอย่าง def truncate_keys(a, length): return dict((k[:length], v) for k, v in a.items()) a = {foo: 125, bar: hello} b = truncate_keys(a, 2) print(b) ผลลัพธ์ {fo: 125, b
คุณสามารถกำหนดค่า dictionary ให้ตัวแปรใน Python โดยใช้ออเปอเรเตอร์เข้าถึง [] ตัวอย่าง my_dict = { foo: 42, bar: 12.5 } new_var = my_dict[foo] print(new_var) ผลลัพธ์ 42 ตัวอย่าง ไวยากรณ์นี้ยังสามารถใช้เพื่อกำหนดค่าใหม่ให้ค่าที่เกี่ยวข้องกับคีย์นี้ได้ my_dict = { foo: 42, bar: 12.5
คุณสามารถ pretty print dict ใน Python ได้โดยใช้ไลบรารี pprint โมดูล pprint ให้ความสามารถในการ pretty-print โครงสร้างข้อมูล Python แบบสุ่มในรูปแบบที่สามารถนำกลับมาใช้เป็นอินพุตให้ interpreter ได้ คุณสามารถใช้ได้ดังนี้: ตัวอย่าง a = { bar: 22, foo: 45 } pprint.pprint(a, width=10) ผลลัพธ์ {ba
Dict ใน Python ถูกเพิ่มประสิทธิภาพอย่างมาก การสร้าง dict จาก N คีย์หรือคู่คีย์-ค่าเป็น O(N) การดึงข้อมูลเป็น O(1) การใส่ข้อมูลเป็น amortized O(1) และอื่นๆ คุณไม่จำเป็นต้องเพิ่มประสิทธิภาพอย่างชัดเจน คุณมั่นใจได้เพราะ Python ใต้หลอดใช้ dict ในการนำคลาสของตัวเองไปใช้ อย่าเปรียบเทียบ list/tuple กับ di
หากคุณมีคีย์ที่แน่นอนที่ต้องการหา คุณสามารถใช้ออเปอเรเตอร์ [] หรือฟังก์ชัน get เพื่อดึงค่าที่เกี่ยวข้องกับคีย์นี้ ตัวอย่างเช่น: ตัวอย่าง a = { foo: 45, bar: 22 } print(a[foo]) print(a.get(foo)) ผลลัพธ์ 45 45 ตัวอย่าง หากคุณมี substring ที่ต้องการค้นหาใน dict คุณสามารถค้นหา substring บนราย
คุณสามารถแปลงไฟล์ JSON ได้โดยใช้โมดูล json ใน Python โมดูลนี้แปลง JSON และใส่ใน dict คุณสามารถดึงค่าได้เหมือน dict ปกติ ตัวอย่างเช่น หากคุณมี JSON ดังนี้: { id: file, value: File, popup: { menuitem: [ {value: New, onclick: CreateNewDoc()}, {value: Open, o
คุณสามารถแปลง JSON เป็น dict โดยใช้ json.loads แล้วแปลงเป็น Python tuple โดยใช้ dict.items() คุณสามารถแปลงไฟล์ JSON ได้โดยใช้โมดูล json ใน Python โมดูลนี้แปลง JSON และใส่ใน dict คุณสามารถดึงค่าได้เหมือน dict ปกติ ตัวอย่างเช่น หากคุณมี JSON ดังนี้: ตัวอย่าง { id: file, value: File, popup
จะไม่มีการรวมซ้ำ (redundant combinations) ใน Python dictionary เพราะมันคือ hashmap หมายความว่าแต่ละคีย์จะมีค่าที่เกี่ยวข้องเพียงค่าเดียว ค่านี้อาจเป็น list หรือ dict อีกทีหนึ่ง ดังนั้นหากคุณพยายามเพิ่มคีย์ซ้ำ เช่น ตัวอย่าง a = {foo: 42, bar: 55} a[foo] = 100 print(a) ผลลัพธ์ {foo: 100, bar: 55} ห
มีบางกรณีที่คุณสามารถหลีกเลี่ยงการใช้ dictionary ใน Python ได้ ตัวอย่างเช่น หากคุณสร้าง dict ของจำนวนเต็มต่อเนื่องไปยังค่าใดๆ พิจารณาใช้ list แทน หากคุณสร้างคีย์แบบสตริง คุณอาจใช้ Trie data structure (https://en.m.wikipedia.org/wiki/Trie) ได้ดีกว่า มีกรณีอื่นๆ ที่คุณสามารถแทนที่การใช้ dict ด้วยโคร
Dictionary ประกอบด้วยจำนวนหนึ่งของ bucket แต่ละ bucket มี: รหัสแฮช (hash code) ของออบเจ็กต์ที่จัดเก็บอยู่ (ไม่สามารถคาดการณ์ได้จากตำแหน่งของ bucket เนื่องจากกลยุทธ์แก้ไขการชน) พอยน์เตอร์ไปยังออบเจ็กต์คีย์ พอยน์เตอร์ไปยังออบเจ็กต์ค่า รวมกันได้ไม่น้อยกว่า 12 ไบต์บนเครื่อง 32-bit และ 24
Use case เฉพาะมาก: https://stackoverflow.com/questions/30447708/split-python-dictionary-into-multiple-keys-dividing-the-values-equally