python - 以有效的方式计算数组中的唯一元素
问题描述
我不能发布比这更好的东西了:(Python 3.6)
N=int(input()) #count of input elements
a=[] #buffer
k=0 #counter
tel=0 #next number
for i in range(N):
tel=int(input())
if(not tel in a):
a.append(tel)
k+=1
print(k) #count of unique elements
但是我的老师说我的解决方案不是很有效,因为我将数据保存到数组a
中......
嗯......他还说我应该将一些东西保存在变量中并永久重写它。
你对这个案子有什么想法吗?
UPD
“有效方式” - 程序必须使用尽可能少的内存,并尽可能快地运行
解决方案
您可以将列表转换为一组(这将删除任何重复项)。集合的长度是原始列表中有多少个唯一元素。
例子:
print(len(set(int(input()) for _ in range(int(input())))))
推荐阅读
- database - 在 EF Core 中自动生成字符串值表
- python - Tkinter 文本未按预期显示
- python - 尝试使用 firebase SDK 在 django 中生成密码重置电子邮件链接时出错
- javascript - 访问和返回嵌套数组值
- javascript - 如何防止 HTML 元素集中在 Angular 中?
- asp.net-core - 如何解决 ERR_CONNECTION_REFUSED
- c++ - 如何使用包含和库创建 Makefile?
- python - 并发 TensorFlow 字符串拆分
- c# - 通过动态调用(获取)属性来初始化(实体)对象。实体框架,c#,ASP>NET
- model-driven-development - eclipse Sirius和epsilon之间的区别