python - 读取列表并打印不重复的元素
问题描述
以下代码适用于小型列表和大型集合的超时错误。
li=list(input());
se=set(li);
for i in se:
count=0
for j in li:
if(j==i):
count=count+1
if(count==1):
print(i)
“成功”数据集
1 2 3 6 5 4 4 2 5 3 6 1 6 5 3 2 4 1 2 5 1 4 3 6 8 4 3 1 5 6 2
预期结果
8
解决方案
from collections import Counter
li=list(input())
cnt = Counter(li)
ans = []
for i in cnt:
if cnt[i] == 1:
ans.append(i)
print(*ans)
要查找集合中某个元素的出现次数,可以使用 collections.Counter。
此外,您的代码的时间复杂度超过了 o(n^2),这就是超时发生的原因。
推荐阅读
- c++ - 替换为 cpp 中基于 getch 的代码块
- ruby-on-rails-6 - 如何在 rails 6/webpacker 中引用 scss 文件路径?
- android - 如何让我的 Android 应用程序始终在 Chrome 或其他支持 TWA 的浏览器中打开?
- flask - ModuleNotFoundError:没有名为“psycopg2”的模块,但不会安装
- aws-lambda - 如何从 AWS Amplify(GraphQL api 和 NodeJS Lambda)中的 Lambda 解析器获取当前用户?
- html - 无法在 html 中加载字体真棒图标
- python - 抓取使用 Javascript 加载的分页数据
- javascript - 为什么该方法将 padEnd 返回为未定义?
- python - 当使用 Python 将 URL 作为请求发送到服务器时如何知道请求 cookie
- java - 如何自动关闭自定义对话框