ฉันต้องการจัดอันดับหลายรายการตามองค์ประกอบความถี่ที่ปรากฏในแต่ละรายการ ตัวอย่าง:
รายการ1 = 1,2,3,4
รายการ2 = 4,5,6,7
รายการ3 = 4,1,8,9
ผลลัพท์ = 4,1,2,3,4,5,6,7,8 (4 นับเป็น 3 ครั้ง 1 สองครั้ง ที่เหลือ 1 ครั้ง)
ฉันได้ลองทำสิ่งต่อไปนี้แล้ว แต่ฉันต้องการบางอย่างที่ชาญฉลาดกว่านี้และบางสิ่งที่ฉันสามารถทำได้กับรายการจำนวนเท่าใดก็ได้
l = []
l.append([ 1, 2, 3, 4, 5])
l.append([ 1, 9, 3, 4, 5])
l.append([ 1, 10, 8, 4, 5])
l.append([ 1, 12, 13, 7, 5])
l.append([ 1, 14, 13, 13, 6])
x1 = set(l[0]) & set(l[1]) & set(l[2]) & set(l[3])
x2 = set(l[0]) & set(l[1]) & set(l[2]) & set(l[4])
x3 = set(l[0]) & set(l[1]) & set(l[3]) & set(l[4])
x4 = set(l[0]) & set(l[2]) & set(l[3]) & set(l[4])
x5 = set(l[1]) & set(l[2]) & set(l[3]) & set(l[4])
set1 = set(x1) | set(x2) | set(x3) | set(x4) | set(x5)
a1 = list(set(l[0]) & set(l[1]) & set(l[2]) & set(l[3]) & set(l[4]))
a2 = getDifference(list(set1),a1)
print a1
print a2
นี่คือปัญหา... ฉันสามารถทำมันซ้ำแล้วซ้ำอีกด้วย a3,a4 และ a5 แต่มันซับซ้อนเกินไป ฉันต้องการฟังก์ชันสำหรับสิ่งนี้... แต่ฉันไม่รู้ว่าทำอย่างไร... คณิตศาสตร์ของฉันติดขัด ;)
แก้ไขแล้ว: ขอบคุณมากสำหรับการสนทนา ในฐานะมือใหม่ ฉันชอบระบบนี้: รวดเร็ว+ให้ข้อมูล คุณช่วยฉันไปหมดแล้ว! ไท