ลิสต์ที่กำหนดมีรายการซ้ำมาก เราสนใจหาผลรวมของความถี่ของบางรายการที่ซ้ำในลิสต์ ด้านล่างคือวิธีการบรรลุเป้าหมายนี้
ด้วย sum
เรามีสองลิสต์ หนึ่งมีลิสต์ค่า และอีกอันมีค่าที่ความถี่ต้องตรวจสอบจากลิสต์แรก ดังนั้นเราสร้างลูป for เพื่อนับจำนวนครั้งที่องค์ประกอบจากลิสต์ที่สองเกิดขึ้นในลิสต์แรก และใช้ฟังก์ชัน sum เพื่อได้ผลรวมความถี่สุดท้าย
ตัวอย่าง
chk_list = ['Mon', 'Tue']
big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue']
# Apply sum
res = sum(big_list.count(elem) for elem in chk_list)
# Printing output
print("Given list to be analysed: \n", big_list)
print("Given list to with values to be analysed:\n", chk_list)
print("Sum of the frequency: ", res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given list to be analysed: ['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue'] Given list to with values to be analysed: ['Mon', 'Tue'] Sum of the frequency: 5
ด้วย collections.Counter
ฟังก์ชัน Counter จากโมดูล collections สามารถได้ผลลัพธ์ที่ต้องการโดยใช้กับลิสต์ที่ค่าต้องวิเคราะห์ขณะวนลูปผ่านลิสต์เล็กที่มีเฉพาะองค์ประกอบที่ความถี่ต้องกำหนด
ตัวอย่าง
from collections import Counter
chk_list = ['Mon', 'Tue']
big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue']
# Apply Counter
res = sum(Counter(big_list)[x] for x in chk_list)
# Printing output
print("Given list to be analysed: \n", big_list)
print("Given list to with values to be analysed:\n", chk_list)
print("Sum of the frequency: ", res)
Output
การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -
Given list to be analysed: ['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue'] Given list to with values to be analysed: ['Mon', 'Tue'] Sum of the frequency: 5