gpt4 book ai didi

python - 在没有计数的情况下计算两个列表之间的频率的替代方法

转载 作者:行者123 更新时间:2023-12-01 03:14:51 25 4
gpt4 key购买 nike

我创建了以下代码来检查第一个列表与第二个列表的频率相比,而不使用计数:

F = [4,7,2]
N = [2,3,4,2,5,6,3,2,6,7,3,4]
frequency = [0,0,0]
for i in range(len(F)):
for num in N:
if F[i] == num:
frequency[i]+=1
print('4 occurs in N', frequency[0], 'times')
print('7 occurs in N', frequency[1], 'times')
print('2 occurs in N', frequency[2], 'times')
print()

代码正确输出:

4 occurs in N 2 times
7 occurs in N 1 times
2 occurs in N 3 times

是否有其他方法可以在不使用 count 的情况下执行此操作?我正在尝试 while 循环,但它不起作用。如有任何帮助,我们将不胜感激。

最佳答案

您可以使用 set 来实现高性能。

from collections import defaultdict

F = [4,7,2]
N = [2,3,4,2,5,6,3,2,6,7,3,4]

set_f = set(F)
freq = defaultdict(int)

for num in N:
if num in set_f:
freq[num] += 1

print freq

哒哒!

Out: defaultdict(<type 'int'>, {2: 3, 4: 2, 7: 1})

关于python - 在没有计数的情况下计算两个列表之间的频率的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42559188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com