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

Python – คำนวณความถี่สัมพัทธ์ของสมาชิกในลิสต์

เมื่อต้องการคำนวณความถี่สัมพัทธ์ (fractional frequency) ของแต่ละสมาชิกในลิสต์ สามารถใช้ dictionary comprehension, Counter จาก collections และลูป iteration ได้

ตัวอย่าง

from collections import Counter
my_list = [14, 15, 42, 60, 75, 50, 45, 55, 14, 60, 48, 65]
print("The list is :")
print(my_list)
my_num = {index: 0 for index in set(my_list)}
my_denominator = Counter(my_list)
my_result = []
for element in my_list:
    my_num[element] += 1
    my_result.append(str(my_num[element]) + '/' + str(my_denominator[element]))
print("The result is :")
print(my_result)

ผลลัพธ์

The list is : [14, 15, 42, 60, 75, 50, 45, 55, 14, 60, 48, 65]
The result is : ['1/2', '1/1', '1/1', '1/2', '1/1', '1/1', '1/1', '1/1', '2/2', '2/2', '1/1', '1/1']

คำอธิบาย

  • นำเข้า Counter จาก collections

  • กำหนดลิสต์ข้อมูลและแสดงผล

  • สร้าง dictionary นับจำนวนครั้งที่เจอแต่ละค่า (numerator) เริ่มต้นที่ 0

  • สร้าง Counter นับจำนวนทั้งหมดของแต่ละค่า (denominator)

  • วนลูปผ่านลิสต์เดิม เพิ่มตัวนับ numerator แล้วสร้างสตริงรูปแบบ 'ตัวนับ/จำนวนทั้งหมด' เพิ่มในผลลัพธ์

  • แสดงผลลัพธ์ที่ได้