📜  Python – 因子频率字典

📅  最后修改于: 2022-05-13 01:55:25.945000             🧑  作者: Mango

Python – 因子频率字典

给定一个包含元素的列表,构造一个具有因子频率的字典。

方法#1:使用循环

这是可以执行此任务的粗暴方式。在此,元素被迭代并检查所需的数量是否是一个因素,如果是,则其在字典中对应于其键的频率增加。

Python3
# Python3 code to demonstrate working of 
# Factors Frequency Dictionary
# Using loop
  
# initializing list
test_list = [2, 4, 6, 8, 3, 9, 12, 15, 16, 18]
  
# printing original list
print("The original list : " + str(test_list))
  
res = dict()
  
# iterating till max element 
for idx in range(1, max(test_list)):
    res[idx] = 0
    for key in test_list:
          
        # checking for factor 
        if key % idx == 0:
            res[idx] += 1
          
# printing result 
print("The constructed dictionary : " + str(res))


Python3
# Python3 code to demonstrate working of 
# Factors Frequency Dictionary
# Using sum() + loop
  
# initializing list
test_list = [2, 4, 6, 8, 3, 9, 12, 15, 16, 18]
  
# printing original list
print("The original list : " + str(test_list))
  
res = dict()
for idx in range(1, max(test_list)):
      
    # using sum() instead of loop for sum computation
    res[idx] = sum(key % idx == 0 for key in test_list)
  
# printing result 
print("The constructed dictionary : " + str(res))


输出
The original list : [2, 4, 6, 8, 3, 9, 12, 15, 16, 18]
The constructed dictionary : {1: 10, 2: 7, 3: 6, 4: 4, 5: 1, 6: 3, 7: 0, 8: 2, 9: 2, 10: 0, 11: 0, 12: 1, 13: 0, 14: 0, 15: 1, 16: 1, 17: 0}

方法 #2:使用 sum() + 循环

这与上述问题的方法几乎相似。不同之处在于 sum() 用于求和,而不是用于解决问题的手动循环。

Python3

# Python3 code to demonstrate working of 
# Factors Frequency Dictionary
# Using sum() + loop
  
# initializing list
test_list = [2, 4, 6, 8, 3, 9, 12, 15, 16, 18]
  
# printing original list
print("The original list : " + str(test_list))
  
res = dict()
for idx in range(1, max(test_list)):
      
    # using sum() instead of loop for sum computation
    res[idx] = sum(key % idx == 0 for key in test_list)
  
# printing result 
print("The constructed dictionary : " + str(res))
输出
The original list : [2, 4, 6, 8, 3, 9, 12, 15, 16, 18]
The constructed dictionary : {1: 10, 2: 7, 3: 6, 4: 4, 5: 1, 6: 3, 7: 0, 8: 2, 9: 2, 10: 0, 11: 0, 12: 1, 13: 0, 14: 0, 15: 1, 16: 1, 17: 0}