คำถามติดแท็ก ordereddictionary

6
ฉันจะทำให้ JSON โหลดเข้าสู่ OrderedDict ได้หรือไม่
ตกลงฉันสามารถใช้ OrderedDict json.dumpได้ นั่นคือ OrderedDict สามารถใช้เป็นอินพุตไปยัง JSON แต่มันสามารถใช้เป็นเอาต์พุตได้หรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร ในกรณีของฉันฉันต้องการที่จะloadเป็น OrderedDict เพื่อให้ฉันสามารถเก็บคำสั่งของคีย์ในไฟล์ หากไม่เป็นเช่นนั้นจะมีวิธีแก้ปัญหาบางอย่าง?

13
เปลี่ยนชื่อคีย์พจนานุกรม
มีวิธีการเปลี่ยนชื่อคีย์พจนานุกรมโดยไม่ต้องกำหนดค่าใหม่ให้เป็นชื่อใหม่และลบคีย์ชื่อเก่าออกหรือไม่ และไม่มีการวนซ้ำผ่านคีย์ / ค่า dict? ในกรณีของ OrderedDict ให้ทำเช่นเดียวกันในขณะที่รักษาตำแหน่งของคีย์นั้น

7
การเข้าถึงรายการในคอลเลกชันสั่งทำตามดัชนี
ให้บอกว่าฉันมีรหัสต่อไปนี้: import collections d = collections.OrderedDict() d['foo'] = 'python' d['bar'] = 'spam' มีวิธีที่ฉันสามารถเข้าถึงรายการในลักษณะหมายเลขเช่น: d(0) #foo's Output d(1) #bar's Output

13
ไม่มีการใช้งาน OrderDictionary ทั่วไป?
ดูเหมือนจะไม่มีการใช้งานทั่วไปของOrderedDictionary(ซึ่งอยู่ในSystem.Collections.Specializedเนมสเปซ) ใน. NET 3.5 มีใครที่ฉันหายไป? ฉันพบการใช้งานที่นั่นเพื่อมอบฟังก์ชันการทำงาน แต่สงสัยว่า / เหตุใดจึงไม่มีการใช้งานทั่วไปนอกกรอบและถ้าใครรู้ว่าเป็นสิ่งที่อยู่ใน.

4
การแปลงคำสั่งเป็น OrderDict
ฉันมีปัญหาในการใช้collections.OrderedDictชั้นเรียน ฉันใช้ Python 2.7 บน Raspbian, Debian distro สำหรับ Raspberry Pi ฉันกำลังพยายามพิมพ์พจนานุกรมสองเล่มเพื่อเปรียบเทียบ (เคียงข้างกัน) สำหรับการผจญภัยแบบข้อความ ลำดับเป็นสิ่งสำคัญในการเปรียบเทียบอย่างถูกต้อง ไม่ว่าฉันจะลองใช้พจนานุกรมพิมพ์ด้วยวิธีที่ไม่เรียงลำดับตามปกติ นี่คือสิ่งที่ฉันได้รับเมื่อฉันทำบน RPi ของฉัน: import collections ship = {"NAME": "Albatross", "HP":50, "BLASTERS":13, "THRUSTERS":18, "PRICE":250} ship = collections.OrderedDict(ship) print ship # OrderedDict([('PRICE', 250), ('HP', 50), ('NAME', 'Albatross'), ('BLASTERS', 13), ('THRUSTERS', 18)]) เห็นได้ชัดว่ามีบางอย่างไม่ถูกต้องเนื่องจากกำลังพิมพ์การเรียกใช้ฟังก์ชันและวางคีย์และกลุ่มค่าไว้ในรายการที่ซ้อนกัน ... นี่คือสิ่งที่ฉันได้รับจากการเรียกใช้สิ่งที่คล้ายกันบนพีซีของฉัน: import collections …

2
วิธีที่ถูกต้องในการเริ่มต้น OrderDict โดยใช้ตัวสร้างเพื่อที่จะรักษาลำดับของข้อมูลเริ่มต้น?
อะไรคือวิธีที่ถูกต้องในการเริ่มต้นพจนานุกรมแบบเรียงลำดับ (OD) เพื่อที่จะรักษาลำดับของข้อมูลเริ่มต้น from collections import OrderedDict # Obviously wrong because regular dict loses order d = OrderedDict({'b':2, 'a':1}) # An OD is represented by a list of tuples, so would this work? d = OrderedDict([('b',2), ('a', 1)]) # What about using a list comprehension, will 'd' preserve the order …

7
วิธีการแปลง OrderDict เป็นคำสั่งปกติใน python3
ฉันกำลังดิ้นรนกับปัญหาต่อไปนี้: ฉันต้องการแปลงสิ่งOrderedDictนี้: OrderedDict([('method', 'constant'), ('data', '1.225')]) เป็นคำสั่งปกติเช่นนี้: {'method': 'constant', 'data':1.225} เพราะฉันต้องจัดเก็บเป็นสตริงในฐานข้อมูล หลังจากการแปลงคำสั่งซื้อไม่สำคัญอีกต่อไปดังนั้นฉันจึงสามารถสำรองคุณลักษณะที่สั่งซื้อไว้ได้ ขอบคุณสำหรับคำแนะนำหรือวิธีแก้ปัญหา เบน

15
มีวิธีใดในการพิมพ์พจนานุกรมที่สั่งพิมพ์ได้อย่างถูกต้อง?
ฉันชอบโมดูล pprint ใน Python ฉันใช้มันมากในการทดสอบและแก้ไขข้อบกพร่อง ฉันมักใช้ตัวเลือกความกว้างเพื่อให้แน่ใจว่าเอาต์พุตพอดีกับหน้าต่างเทอร์มินัลของฉัน มันใช้งานได้ดีจนกว่าพวกเขาจะเพิ่มประเภทพจนานุกรมที่สั่งซื้อใหม่ใน Python 2.7 (คุณสมบัติที่ยอดเยี่ยมอีกอย่างที่ฉันชอบมาก) ถ้าฉันพยายามพิมพ์พจนานุกรมแบบเรียงลำดับสวย ๆ มันก็ไม่ได้แสดงอย่างสวยงาม แทนที่จะมีคู่คีย์ - ค่าแต่ละคู่ในบรรทัดของตัวเองสิ่งทั้งหมดจะแสดงเป็นบรรทัดยาวเส้นเดียวซึ่งตัดหลายครั้งและอ่านยาก ใครที่นี่มีวิธีที่จะทำให้มันพิมพ์ออกมาได้ดีเหมือนพจนานุกรมที่ไม่มีการเรียงลำดับแบบเก่า ๆ ? ฉันอาจคิดอะไรบางอย่างออกโดยอาจใช้เมธอด PrettyPrinter.format ถ้าฉันใช้เวลาพอสมควร แต่ฉันสงสัยว่ามีใครรู้วิธีแก้ปัญหาอยู่แล้ว UPDATE:ฉันยื่นรายงานข้อบกพร่องสำหรับสิ่งนี้ คุณสามารถดูได้ที่http://bugs.python.org/issue10592
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.