列出验证索引的问题

时间:2018-01-05 15:10:23

标签: python python-3.x

需要制作一个程序,该程序将从用户接收20个数字(1到10)并将它们放入列表中。然后用户键入一个数字;它应该打印用户输入的数字的显示次数和这些数字的索引。 我试过但找不到解决方案。

x = []
for i in range(0, 21):
    x.append(int(input("Introduza numeros: ")))
y = int(input("Escreva um numero: "))
r = x.index(y)
if r == True:
    print(r)
else:
    print("Não ha esse numero")

5 个答案:

答案 0 :(得分:3)

要获得列表中出现的次数,请使用:

x.count(y)

要获得外观指数:

[i for i, j in enumerate(x) if j == y]

答案 1 :(得分:0)

https://docs.python.org/3/tutorial/datastructures.html解释了索引返回第一次出现的值的基于0的索引。如果要计算值的出现次数,请改用count ()

r = x. count(y)
if r > 0:
    print(r)
else:
    print("Não ha esse numero")

答案 2 :(得分:0)

for i in range(0, 21):
    x.append(int(input("Introduza numeros: ")))
y = int(input("Escreva um numero: "))
r = [indx for indx, num in enumerate(x) if num == y]
if r == True:
    print(len(r))    
    print(r)
else:
    print("Não ha esse numero")

我使用List comprehension遍历列表并枚举以查找索引。

答案 3 :(得分:0)

虽然Zipa的答案几乎是最好的,但如果你想要这个count操作的另一种方法,那么你可以试试这个:

def count(x,list_):         return len([i for list in list_ if i == x])

>>> count(2,[2,3,2,5])
>>> 2
  

注意:   此方法比x.count慢,因为它涉及数组生成和   计数,我相信x.count()必须使用一些非常优化的算法与我相比。

答案 4 :(得分:0)

您可以使用字典来存储数字,而不是使用列表,每个唯一用户条目作为键存储数字它计为值

user_entries = dict()
for i in range(0, 21):
    entry = int(input("Introduza numeros: "))
    if entry not in user_entries:
        user_entries[entry] = 1  # Creating new entry for new numbers
    else:
        user_entries[entry] += 1  # Updating old entries' count
y = int(input("Escreva um numero: "))
if y in user_entries:
    print(user_entries[y])  # Printing count of existing entry
else:
    print("Não ha esse numero")