Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หาผลรวมความถี่ขององค์ประกอบที่กำหนดในลิสต์ใน Python

ลิสต์ที่กำหนดมีรายการซ้ำมาก เราสนใจหาผลรวมของความถี่ของบางรายการที่ซ้ำในลิสต์ ด้านล่างคือวิธีการบรรลุเป้าหมายนี้

ด้วย 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