สอบถามการเรียงข้อมูลใน loop iteritems() อยากให้มันเรียงตามลำดับที่ใส่ใน dict มา

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: สอบถามการเรียงข้อมูลใน loop iteritems() อยากให้มันเรียงตามลำดับที่ใส่ใน dict มา

Re: สอบถามการเรียงข้อมูลใน loop iteritems() อยากให้มันเรียงตามลำดับที่ใส่ใน dict มา

โดย thatsawan » 27/08/2017 2:08 pm

ลองทำตามเเล้วไม่ได้ เจอสาเหตุมาจาก key ต้องเป็น str

โค้ด: เลือกทั้งหมด

                if parent_id not in page_data:
                    page_data[parent_id] = {}

                page_data[parent_id][line.id] = categ_id
ถ้าเรา loop ใส่ key เเบบนี้ทำยังไงให้มันเป็น str ค่ะ

Re: สอบถามการเรียงข้อมูลใน loop iteritems() อยากให้มันเรียงตามลำดับที่ใส่ใน dict มา

โดย mindphp » 26/08/2017 8:54 pm

โค้ด: เลือกทั้งหมด

page_data = {
    '56': {'k99':99, 'k100': 100}, 
    '110': {'k286': 286, 'k287': 287}, 
    '94': {'k1923':1923, 'k237': 237, }
    }
#keylist = page_data.keys()   
for key in page_data:
        for key2 in page_data[key]:
            print page_data[key][key2]

สอบถามการเรียงข้อมูลใน loop iteritems() อยากให้มันเรียงตามลำดับที่ใส่ใน dict มา

โดย thatsawan » 26/08/2017 8:31 pm

โค้ด: เลือกทั้งหมด

page_data = {
    56: {'k99':99, 'k100': 100}, 
    110: {'k286': 286, 'k287': 287}, 
    94: {'k1923':1923, 'k237': 237, }
    }
    

โค้ด: เลือกทั้งหมด

for key, value in page_data.iteritems():
    for k, v in value.iteritems():
        print v
ผลที่ได้

โค้ด: เลือกทั้งหมด

99
100
1923
237
287
286

ผลที่อยากได้จริงๆ

โค้ด: เลือกทั้งหมด

99
100
287
286
1923
237

ข้างบน