เมื่อต้องการคำนวณความถี่สัมพัทธ์ (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 แล้วสร้างสตริงรูปแบบ 'ตัวนับ/จำนวนทั้งหมด' เพิ่มในผลลัพธ์
แสดงผลลัพธ์ที่ได้