python - 我收到 TypeError: list indices must be integers or slices, not float for this code
问题描述
a=100
count=0
b=105
for i in range(a,b+1):
visited=[0 for i in range(0,10)]
num=i
while(num):
x=num%10
if (visited[x]):
break
visited[num%10]=1
num=num/10
if num==0:
count+=1
if count==0:
print("No unique number")
else:
print(count)
'''唯一数字是指一个数字中没有两个相同的数字'''我尝试实现此代码,但我一直收到类型错误
解决方案
好吧,如果您使用list comprehension
.
该部分生成从到的num for num in range(100, 106)
所有整数,同时检查是否所有数字都出现在大多数时间,这是在从 的字符串表示中构造一个数字之后完成的,这些数字是使用模块中的 计算的。100
105
if
num
1
list
num
Counter
collections
from collections import Counter
count = [num for num in range(100, 106) if all(x <= 1 for x in Counter(list(str(num))).values())]
print(count)
输出:
[102, 103, 104, 105]