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

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


รายการที่กำหนดมีรายการซ้ำหลายรายการ เราสนใจที่จะหาผลรวมของความถี่ของรายการดังกล่าวที่ซ้ำกันในรายการ ด้านล่างนี้คือแนวทางที่เราสามารถทำได้

ด้วยผลรวม

เรามีสองรายการ หนึ่งมีรายการของค่าและอื่น ๆ มีค่าที่จะต้องตรวจสอบความถี่จากรายการแรก ดังนั้นเราจึงสร้าง for loop เพื่อนับจำนวนการเกิดขึ้นขององค์ประกอบจากรายการที่สองในรายการแรก จากนั้นใช้ฟังก์ชัน 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)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

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

พร้อมของสะสมเคาน์เตอร์

ฟังก์ชันตัวนับจากโมดูลคอลเลกชันสามารถรับผลลัพธ์ที่ต้องการได้โดยนำไปใช้กับรายการที่ต้องมีการวิเคราะห์ค่าในขณะที่วนลูปผ่านรายการที่เล็กกว่าซึ่งมีเฉพาะองค์ประกอบที่ต้องการสร้างความถี่

ตัวอย่าง

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)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

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