如何在python中从用户输入的列表中查找特定的数字

How to find a specific number from a user inputed list in python

本问题已经有最佳答案,请猛点这里访问。

我想让程序找出一个特定数字在列表中出现的次数。我在这里做错什么了?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def list1():
    numInput = input("Enter numbers separated by commas:")
    numList = numInput.split(",")
    numFind = int(input("Enter a number to look for:"))
    count = 0
    for num in numList:
        if num == numFind:
            count += 1
    length = len(numList)
    # dividing how many times the input number was entered
    # by the length of the list to find the %
    fraction = count / length
    print("Apeared",count,"times")
    print("Constitutes",fraction,"% of this data set")
list1()


numList不是数字列表,而是字符串列表。在与numFind比较之前,尝试转换为整数。

1
    if int(num) == numFind:

或者,将numFind保留为字符串:

1
numFind = input("Enter a number to look for:")

…虽然这可能会带来一些复杂的情况,例如,如果用户输入1, 2, 3, 4作为他们的列表(注意空格),输入2作为他们的编号,则会说"出现0次",因为" 2""2"不相等。


代码有两个问题,第一个是比较intstr,第二个是count / length。在python中,当用int除以int时,会得到一个int返回而不是float(如预期的那样),因此fraction = flost(count) / length对您有效,还需要将列表中的所有元素转换为整数,可以这样做:

1
numList = map(int, numInput.split(","))