อยากทราบเกี่ยวกับ tuple ค่ะ

  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.
  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.

คือว่ามี tuple ที่เกิดจากการเอาข้อมูลที่ query จาก database มาใส่ใน tuple แบบนี้

tup1 = (lo_file[0] for lo_file in rows_file)
tup2 = (file_name[0] for file_name in rows_name)
tup3 = (file_kml[0] for file_kml in rows_kml)

สมมติ ข้อมูลที่ query ได้ใน tup1= (1, 2, 3) tup2= (x, y, z) tup3= (a, b, c)

แล้วสั่งให้ print แบบนี้

for i in zip(tup1, tup2, tup3):
    print """tup1=%stup2=%stup3=%s"""%(i)

ก็จะได้

      tup1=1tup2=xtup3=a
      tup1=2tup2=ytup3=b
      tup1=3tup2=ztup3=c

แบบนี้ใช่มั้ยคะ แล้วถ้าต้องการให้ print ค่าเดิมให้เป็น

      tup1=1tup2=xtup3=atup4=xtup5=a
      tup1=2tup2=ytup3=btup4=ytup5=b
      tup1=3tup2=ztup3=ctup4=ztup5=c

จะต้องทำอย่างไรคะ เพราะเท่าที่ทำมาโดยการเขียนแบบนี้

tup1 = (lo_file[0] for lo_file in rows_file)
tup2 = (file_name[0] for file_name in rows_name)
tup3 = (file_kml[0] for file_kml in rows_kml)
tup4 = (file_name[0] for file_name in rows_name)
tup5 = (file_kml[0] for file_kml in rows_kml)
 
for i in zip(tup1, tup2, tup3, tup4, tup5):
    print """tup1=%stup2=%stup3=%stup4=%stup5=%s"""%(i)

มันจะ ปริ้นออกมาเป็น

        tup1=1tup2=xtup3=a            tup4=xtup5=a
        tup1=2tup2=ytup3=b            tup4=ytup5=b
        tup1=3tup2=ztup3=c            tup4=ztup5=c

มันจะเว้นยาวๆอย่างนี้น่ะค่ะ ซึ่งไม่ต้องการให้เว้น

จะทำอย่างไรได้คะ ขอบคุณค่ะ

เข้าใจว่าในข้อมูล tup3 มันจะไม่ใช่ ('a', 'b', 'c') (1) ครับ แต่อาจเป็น ('a ', 'b ', 'c ') (2)

ลองตรวจสอบด้วยการ print tup3 ออกมาเฉย ๆ ก่อนครับ ดูว่าเป็นแบบที่ (1) หรือ (2)

หากเป็นแบบ (2) ลองแก้โดยใช้ regex ดูครับเช่น

import re
tup1 = (lo_file[0] for lo_file in rows_file)
tup2 = (file_name[0] for file_name in rows_name)
tup3 = (re.sub('\s','',file_kml[0]) for file_kml in rows_kml)
 
for i in zip(tup1, tup2, tup3, tup2, tup3):
    print """tup1=%stup2=%stup3=%stup4=%stup5=%s"""%(i)

หากเป็นแบบที่ (1) ค่อยมาหาวิธีแก้กันอีกทีครับ

ปล. blockcode ไม่ไฮไลท์อ่ะ ไม่หนุกเลย

sugree's picture

ขอโทษคร้าบ ลืม enable พวก format ตอนอัพเกรด

ขอบคุณครับผม :D

เอ่อ ขอบคุณมากค่ะ ที่ผิดพลาดไม่ใช่เพราะอะไรเลย พิมพ์ผิดเอง T__T

ย้าย Codenone

ประกาศย้าย Codenone ไปใช้ Forum ของ Blognone แทนครับ ตามไปตั้งกระทู้ต่อได้ที่ Codenone Forum (รายละเอียดอ่านจากกระทู้ ย้าย Codenone ไปรวมกับ Blognone)

กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น