【问题标题】:How many times a number in list 1 appears in list 2 without using count()列表 1 中的数字在不使用 count() 的情况下出现在列表 2 中的次数
【发布时间】:2017-03-01 01:01:40
【问题描述】:

尝试编写此代码以查看列表 1 中的数字出现在列表 2 中的次数,可以使用嵌套的 for 或 while 循环,但我想出了这个它不起作用。我不想使用计数。

list1 = [4,7,2]
list2 = [2,3,4,2,5,6,3,2,6,7,3,4]
def compare(list1, list2):
    freq = ([i for i in list1 if i == num])
    return
print('The number 4 occurs in list2', freq, 'times')
print('The number 7 occurs in list2', freq, 'times')
print('The number 2 occurs in list2', freq, 'times')

【问题讨论】:

  • 创建一个帮助函数,该函数创建一个字典,其中包含列表中每个数字出现次数的计数。 For example given [1, 1, 1, 2, 2, 3] 它将返回字典 {3: 1, 2: 2, 1: 3}。然后,只需在两个列表上调用此函数即可获取它们的计数,并比较字典是否相等。

标签: list frequency


【解决方案1】:

我不完全确定我理解了这个问题,
但是这段代码似乎可以工作,但如果您需要它来执行交互式程序,它可能会很慢。
希望这会有所帮助!

list1 = [4,7,2]
list2 = [2,3,4,2,5,6,3,2,6,7,3,4]
occurrences = [0,0,0]
for i in range(len(list1)):
    for j in list2:
        if list1[i] == j:
            occurrences[i]+=1
print occurrences

【讨论】:

  • O(N^2) 疼。
【解决方案2】:

试试这个:

list1 = [4,7,2]
list2 = [2,3,4,2,5,6,3,2,6,7,3,4]
occurrences = [0,0,0]
for i in range(len(list1)):
    for j in list2:
        if list1[i] == j:
            occurrences[i]+=1
print occurrences

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多