需要制作一个程序,该程序将从用户接收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")
答案 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")