รายการ 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