2013-02-14 27 views
0

我曾經爲了得到一個表,並將它們組合Python的分組

 cur.execute("SELECT * FROM seats WHERE Day = 'S' AND Booked = 'N' AND Disabled = 'N'") 
     for letter, rows in groupby(cur, key=lambda r: r[0][0]): 
      print ' '.join([r[0] for r in rows]) 

座位下面的代碼,我得到以下打印:

A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 
B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 
C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 
D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 
E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 
F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 
G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12 G13 G14 G15 G16 G17 G18 
H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15 H16 H17 H18 
J2 J3 J4 J5 J6 J7 J8 J9 J10 J11 J12 J13 J14 J15 J16 J17 J18 
K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 
L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 

但有A1,B2等失蹤 - 哪些是殘疾人座位,我知道我把'殘疾= N' ,但我想殘疾人座位然後打印在底部給予類似如下:

A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 
B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 
C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 
D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 
E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 
F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 
G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12 G13 G14 G15 G16 G17 G18 
H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15 H16 H17 H18 
J2 J3 J4 J5 J6 J7 J8 J9 J10 J11 J12 J13 J14 J15 J16 J17 J18 
K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 
L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 

Disabled seats available : A1, C1 , C17 

但我不知道如何工作groupby很好?

+0

來自哪裏你的'groupby'方法? – eumiro 2013-02-14 13:14:01

+0

從該數據中顯示一些您希望的數據和完整的輸出。 – 2013-02-14 13:27:14

+0

@JanneKarila完成了。 – OcelotcR 2013-02-14 13:36:54

回答

2

既然你要輸出的殘疾人座位不同,你爲什麼不乾脆去做另:

cur.execute("SELECT * FROM seats WHERE Day = 'S' AND Booked = 'N' AND Disabled = 'N'") 
    for letter, rows in groupby(cur, key=lambda r: r[0][0]): 
     print ' '.join([r[0] for r in rows]) 
    cur.execute("SELECT * FROM seats WHERE Day = 'S' AND Booked = 'N' AND Disabled = 'Y'") 
    print 'Disabled seats available : ', ', '.join([r[0] for r in cur])