รายการ 2D มีรายการเป็นองค์ประกอบ กล่าวอีกนัยหนึ่งก็คือรายการของรายการ ในบทความนี้ เราจะต้องค้นหาองค์ประกอบที่พบได้บ่อยที่สุดในบรรดารายการทั้งหมดที่อยู่ในรายการ
ด้วยค่าสูงสุดและจำนวน
เราออกแบบการติดตามโดยมีเงื่อนไขเพื่อตรวจสอบการมีอยู่ขององค์ประกอบในรายการย่อยที่กำหนด จากนั้นเราใช้ฟังก์ชัน max ร่วมกับฟังก์ชันการนับเพื่อให้ได้องค์ประกอบที่มีความถี่สูงสุด
ตัวอย่าง
def highest_freq(lst):
SimpleList = [el for sublist in lst for el in sublist]
return max( SimpleList, key= SimpleList.count)
# Given list
listA = [[45, 20, 11], [20, 17, 45], [20,13, 9]]
print("Given List:\n",listA)
print("Element with highest frequency:\n",highest_freq(listA)) ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given List: [[45, 20, 11], [20, 17, 45], [20, 13, 9]] Element with highest frequency: 20
มีโซ่
ที่นี่เราใช้แนวทางที่คล้ายกันกับวิธีข้างต้น แต่เราใช้ฟังก์ชันลูกโซ่จาก itertools โมดูล
ตัวอย่าง
from itertools import chain
def highest_freq(lst):
SimpleList = list(chain.from_iterable(lst))
return max( SimpleList, key= SimpleList.count)
# Given list
listA = [[45, 20, 11], [20, 17, 45], [20,13, 9]]
print("Given List:\n",listA)
print("Element with highest frequency:\n",highest_freq(listA)) ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given List: [[45, 20, 11], [20, 17, 45], [20, 13, 9]] Element with highest frequency: 20
มีเคาน์เตอร์และโซ่
ในแนวทางนี้ ฟังก์ชันตัวนับจากคอลเล็กชันจะรักษาการนับองค์ประกอบที่ดึงข้อมูลโดยใช้ฟังก์ชันลูกโซ่จาก itertools
ตัวอย่าง
from itertools import chain
from collections import Counter
def highest_freq(lst):
SimpleList = chain.from_iterable(lst)
return Counter(SimpleList).most_common(1)[0][0]
# Given list
listA = [[45, 20, 11], [20, 17, 45], [20,13, 9]]
print("Given List:\n",listA)
print("Element with highest frequency:\n",highest_freq(listA)) ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given List: [[45, 20, 11], [20, 17, 45], [20, 13, 9]] Element with highest frequency: 20