เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี - key 'shape' ที่มี value เป็น tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์ - key 'data' ที่มี value เป็น dict ที่มี - key เป็นเลขแถว - value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 0 - คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์ เช่น ตาราง 1111111 1110110 1000001 1111111 1111011 1111111 เก็บด้วย dict { 'shape': (6,7), 'data': { 0: [], 1: [3,6], 2: [3,1,2,4,5], 4: [4] } } ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 0 เลย อาจมีหรือไม่มีเลขแถวใน dict ก็ได้ จงเขียนฟังก์ชัน f(x) - รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น - คืนลิสต์ของ tuple (i,j) ต่าง ๆ ที่ - i น้อยกว่า j - i กับ j เป็นเลขแถวของคู่แถวที่ไม่มี 0 อยู่ใน คอลัมน์เดียวกันของสองแถวนั้น - ลำดับของข้อมูลในลิสต์ผลลัพธ์จะเป็นอย่างไรก็ได้ เช่น ตาราง 101 010 100 111 แทนด้วย x = { 'shape': (4,3), 'data' : {0:[1], 1:[0,2], 2:[1,2]} } คำสั่ง f(x) จะคืน [(0,1), (0,3), (1,3), (2,3)] def f(x): out = list() R = x['shape'][0] d = x['data'] for i in range(R): for j in range(i+1, R): si = sj = set() if i in d: si = set(d[i]) if j in d: sj = set(d[j]) if len(si & sj) == 0: out.append((i,j)) return out ---------------------------- เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี - key 'shape' ที่มี value เป็น tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์ - key 'data' ที่มี value เป็น dict ที่มี - key เป็นเลขแถว - value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 0 - คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์ เช่น ตาราง 1111111 1110110 1000001 1111111 1111011 1111111 เก็บด้วย dict { 'shape': (6,7), 'data': { 0: [], 1: [3,6], 2: [3,1,2,4,5], 4: [4] } } ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 0 เลย อาจมีหรือไม่มีเลขแถวใน dict ก็ได้ จงเขียนฟังก์ชัน f(x) - รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น - คืนลิสต์ของ tuple (i,j) ต่าง ๆ ที่ - i น้อยกว่า j - i กับ j เป็นเลขแถวของคู่แถวที่มี 0 อยู่ใน คอลัมน์เดียวกันอย่างหนึ่งคอลัมน์ของสองแถวนั้น - ลำดับของข้อมูลในลิสต์ผลลัพธ์จะเป็นอย่างไรก็ได้ เช่น ตาราง 101 010 100 111 แทนด้วย x = { 'shape': (4,3), 'data' : {0:[1], 1:[0,2], 2:[1,2]} } คำสั่ง f(x) จะคืน [(0, 2), (1, 2)] def f(x): out = list() R = x['shape'][0] d = x['data'] for i in range(R): for j in range(i+1, R): si = sj = set() if i in d: si = set(d[i]) if j in d: sj = set(d[j]) if len(si & sj) > 0: out.append((i,j)) return out ------------------------------- เราสามารถจัดเก็บตารางที่มีแต่เลข 0 กับ 1 ด้วย dict ที่มี - key 'shape' ที่มี value เป็น tuple 2 ช่องเก็บจำนวนแถวและจำนวนคอลัมน์ - key 'data' ที่มี value เป็น dict ที่มี - key เป็นเลขแถว - value เป็นลิสต์เก็บเลขคอลัมน์ในแถวนั้นที่มีข้อมูลเป็น 0 - คำว่าเลขแถวเลขคอลัมน์ คืออินเด็กซ์ของแถวและคอลัมน์ เช่น ตาราง 1111111 1110110 1000001 1111111 1111011 1111111 เก็บด้วย dict { 'shape': (6,7), 'data': { 0: [], 1: [3,6], 2: [3,1,2,4,5], 4: [4] } } ให้สังเกตว่า แถว 0, 3 และ 5 ไม่มีเลข 0 เลย อาจมีหรือไม่มีเลขแถวใน dict ก็ได้ จงเขียนฟังก์ชัน f(x) - รับ x เป็น dict ที่แทนตารางในลักษณะข้างต้น - คืนลิสต์ของ tuple (i,j) ต่าง ๆ ที่ - i น้อยกว่า j - i กับ j เป็นเลขแถวของคู่แถวที่เมื่อพิจารณารวมกัน จะมี 0 อยู่ครบทุกคอลัมน์ - ลำดับของข้อมูลในลิสต์ผลลัพธ์จะเป็นอย่างไรก็ได้ เช่น ตาราง 1011 0110 1001 0100 แทนด้วย x = { 'shape': (4,4), 'data' : {0:[1], 1:[0,3], 2:[1,2], 3:[0,2,3]} } คำสั่ง f(x) จะคืน [(0, 3), (1, 2), (2, 3)] def f(x): out = list() R,C = x['shape'] d = x['data'] for i in range(R): for j in range(i+1, R): si = sj = set() if i in d: si = set(d[i]) if j in d: sj = set(d[j]) if len(si | sj) == C: out.append((i,j)) return out -------------------------------