กำหนดค่าให้ตัวแปร dic เป็นตัวแปรประเภท dictionary คือ
dic = {'BARCODE':'8853748733700','PRICE':'200.00','NAME':'NB-99','REMARK':'.','CURRENCY':'Baht','NUMLINE':'6'}
แต่ เมื่อสั่ง print dic ค่าที่แสดงออกมามันสลับที่กัน เป็น
{'REMARK': '.', 'NAME': 'NB-99', 'NUMLINE': '6', 'PRICE': '200.00', 'BARCODE': '8853748733700', 'CURRENCY': 'Baht'}
รบกวนช่วยแนะนำด้วยนะคะ
ขอบคุณค่ะ
กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น
ข้อมูลแบบ dictionar มันจะจำแค่ว่า Key อะไรตรงกับ value อะไรเท่านั้นครับ ไม่มีการจำตำแหน่ง order อะไรทั้งนั้น กรณีนี้คุณต้องสั่ง print แต่ละ key เอาเองคับ :) แต่ก็มีวิธีง่ายอีกวิธีนึงครับ หลังจากสร้าง dic ไปแล้ว ก็สร้าง list เก็บเฉพาะชื่อ key แล้วไป print ใน loop for เอาครับ
ประมาณนี้อ่ะครับ (กลัวว่าจะเอามะพร้าวมาขายสวนจัง :P )
.# หลังจากสร้าง dictionary แล้ว ก็สร้าง list เก็บ key ตาม order ที่ต้องการเลยครับ
dickey = ['BARCODE', 'PRICE', 'NAME', 'REMARK', 'CURRENCY', 'NUMLINE']
for key in dickey:
....print '%s: %s' %(key, dic[key])
แต่ว่ามัน print เป็นคนละบรรทัดนะครับ ลองหาวิธีให้เป็นบรรทัดเดียวกันอยู่ :P
ผิดถูกอย่างไรขอผู้รู้ท่านอื่นๆชี้แนะด้วยนะครับ
ใส่ , ตามหลัว
จะทำให้ส่วนที่เป็น program coding แสดงเป็นสีแบบนี้ยังงัยอ่ะครับ
ใส่
<code ="python">
</code>
หรือดูรูปแบบจาก Input format ด้านล่างนะครับ
ผมทำ tutorial ไว้ที่ http://blog.vee-u.com/2008/02/17/blockcode/
ลองทำตามที่แนะนำแล้วค่ะ สามารถทำกับ code ด้านบนได้ แต่ไม่สามารถใช้กับ code ด้านล่างนี้ได้ค่ะ ช่วยแนะนำด้วยนะคะ ขอบคุณคะ
text = '' dict1 = {"Barcode":"<STX><ESC>E2<CAN><ETX>\n\n<STX><ESC>F \"Barcode\" <DEL>%s<ETX>\n", "Price":"<STX><ESC>F \"Price\"<DEL>%s<ETX>\n", "Remark":"<STX><ESC>F \"Remark\"<DEL>%s<ETX>\n", "Product":"<STX><ESC>F \"Product\"<DEL>%s<ETX>\n", "Currency":"<STX><ESC>F \"Currency\"<DEL>%s<ETX>\n", "Qty":"<STX><RS>%s<ETB><ETX>\n\n"} d1 = {"Barcode":'8853748733700',"Price":'200.00',"Remark":'.',"Product":'NB-99',"Currency":'Baht',"Qty":'6'} d2 = {"Barcode":'8853748733158',"Price":'150.00',"Remark":'.',"Product":'NBS-200',"Currency":'Baht',"Qty":'4'} order=["Barcode","Price","Remark","Product","Currency","Qty"] listdict = [d1,d2] b = 0 for x in listdict: for y in x: if y in dict1: text += dict1[y] % x[y] print textloop เกินมาบรรทัดหนึ่ง เอา
for y in x:ออกไม่เห็นเอา
orderมาใช้