สอบถามการเรียงข้อมูลใน loop list ซ้อน list พอยัดค่าใส่ dict มันเรียงไม่ถูกค่ะ

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

สอบถามการเรียงข้อมูลใน loop list ซ้อน list พอยัดค่าใส่ dict มันเรียงไม่ถูกค่ะ

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

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

categ_data = [197, 152, 154, 153, 196, 151, 201, 163, 145]
item = [11,22,33]

data = {}
for cate in categ_data:
    print cate
    for i in item:
        print i
        data[cate] = i
        
        
print data

print data
ผลที่ได้

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

{163: 33, 196: 33, 197: 33, 201: 33, 145: 33, 151: 33, 152: 33, 153: 33, 154: 33}

ลองปรับ key เป็น str เเล้วก็ไม่เรียง

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

categ_data = [197, 152, 154, 153, 196, 151, 201, 163, 145]
item = [11,22,33]

data = {}
for cate in categ_data:
    print cate
    c = str(cate)
    for i in item:
        print i
        data[c] = i


print data


ผลที่ได้

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

{'151': 33, '201': 33, '153': 33, '152': 33, '154': 33, '197': 33, '196': 33, '145': 33, '163': 33}
ก่อนยัดค่า ลองปริ้นค่าดูก็ทำงานถูกค่ะ key ปริ้นเรียงลำดับของ loop เเต่พอยัดค่าลงอีกตัวแปล ก็จะผิดค่ะ


ผลที่ต้องการ อยากให้ key เรียงตาม categ_data = [197, 152, 154, 153, 196, 151, 201, 163, 145]
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามการเรียงข้อมูลใน loop list ซ้อน list พอยัดค่าใส่ dict มันเรียงไม่ถูกค่ะ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

import โมดูล collections เข้ามาใช้ และประการตัวแปด้วย collections.OrderedDict()

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

import collections
categ_data = [197, 152, 154, 153, 196, 151, 201, 163, 145]
item = [11,22,33]

data = collections.OrderedDict()
for cate in categ_data:
    #print cate
    #c = str(cate)
    c = cate
    data[c] = 3 # range(1,9)

print data
ผลที่ได้
OrderedDict([(197, 3), (152, 3), (154, 3), (153, 3), (196, 3), (151, 3), (201, 3), (163, 3), (145, 3)])
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: สอบถามการเรียงข้อมูลใน loop list ซ้อน list พอยัดค่าใส่ dict มันเรียงไม่ถูกค่ะ

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

ลองมา ใส่ 2 loop ซ้อนกัน

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

categ_data = [197, 152, 154, 153, 196, 151, 201, 163, 145]
item = [11,22,33]

data = collections.OrderedDict()
for cate in categ_data:
    for i in item:
        
        #c= str(cate)
        c = cate
        data[c] = i # range(1,9)

print data
ผลที่ได้คือ loop ของค่า item ได้ตัวสุดท้ายตลอดเลยคะ

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

OrderedDict([(197, 33), (152, 33), (154, 33), (153, 33), (196, 33), (151, 33), (201, 33), (163, 33), (145, 33)])
จะทำยังไงให้มัน
เก็บ

{197 : {11,22,33} , 152 :{11,22,33}}
ประมานนี้เเบบนี้อ่าค่ะ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามการเรียงข้อมูลใน loop list ซ้อน list พอยัดค่าใส่ dict มันเรียงไม่ถูกค่ะ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

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

import collections
categ_data = [197, 152, 154, 153, 196, 151, 201, 163, 145]
item = [11,22,33]

data = collections.OrderedDict()
for cate in categ_data:
    #print cate
    #c = str(cate)
    c = cate
    data[c] = item

print data
ผลที่ได้
OrderedDict([(197, [11, 22, 33]), (152, [11, 22, 33]), (154, [11, 22, 33]), (153, [11, 22, 33]), (196, [11, 22, 33]), (151, [11, 22, 33]), (201, [11, 22, 33]), (163, [11, 22, 33]), (145, [11, 22, 33])])
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: สอบถามการเรียงข้อมูลใน loop list ซ้อน list พอยัดค่าใส่ dict มันเรียงไม่ถูกค่ะ

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

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

page_data = collections.OrderedDict()
 if parent_id not in page_data:
                        page_data[parent_id] = collections.OrderedDict()
                    page_data[parent_id][line.id] = line
ได้เเล้วค่ะ
ถ้าเรามี 2 ชั้น ต้องเรียง 2 ชั้นเลย
บุคคลทั่วไป

Re: สอบถามการเรียงข้อมูลใน loop list ซ้อน list พอยัดค่าใส่ dict มันเรียงไม่ถูกค่ะ

โพสต์ที่ยังไม่ได้อ่าน โดย บุคคลทั่วไป »

mindphp เขียน: 27/08/2017 6:55 pm import โมดูล collections เข้ามาใช้ และประการตัวแปด้วย collections.OrderedDict()

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

import collections
categ_data = [197, 152, 154, 153, 196, 151, 201, 163, 145]
item = [11,22,33]

data = collections.OrderedDict()
for cate in categ_data:
    #print cate
    #c = str(cate)
    c = cate
    data[c] = 3 # range(1,9)

print data
ผลที่ได้
OrderedDict([(197, 3), (152, 3), (154, 3), (153, 3), (196, 3), (151, 3), (201, 3), (163, 3), (145, 3)])
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 39