python - 计算没有集合的列表中的唯一元素
问题描述
我目前正在尝试制作一个程序来计算和打印列表中唯一元素的数量。
我的代码:
def solution(N, A):
yee = 1
for i in range(1, len(A)):
j = 0
for j in range(i):
if(A[i] == A[j]):
yee-=1
if(i==j+1):
yee +=1
print(yee)
N = int(input())
A = []
n = 0
for e in input().split():
if(n<N):
A.append(int(e))
n+=1
solution(N, A)
使用包含 (1 2 3 1 4 2 5 6 7 8) 的列表,输出应该是 6。但是,我的程序返回 8。我相信这是由于程序计算了 1 和 2,即使它们是在技术上不是唯一的问题。我确信它很容易修复,但我似乎无法弄清楚。任何帮助将不胜感激!!
解决方案
获得 6 输出的唯一方法(1, 2, 3, 1, 4, 2, 5, 6, 7, 8)
是,如果您想计算仅出现一次的元素数量,而不是唯一元素的数量(有 8 个元素,其中两个重复多次) .
您可以在单行中执行此操作:
def num_single_elements(A):
return len(list(e for e in A if A.count(e) == 1))
推荐阅读
- android - Gradle build daemon 意外消失
- django - Django:如何定位“/device/event”路由的调用者?
- javascript - Discord.js 嵌入:TypeError:Discord.MessageEmbed 不是构造函数
- json - Vega Lite - 条形图 - 排序错误
- r - 如何将数字调查响应转换为二进制 1,0?
- python - 在不使用 pandas 的情况下检查列表列表的行和列中的元素
- azure - 将字符串参数传递给动态 SQL 中的 case 语句时出错
- .net-core - Windows 10 IIS 中的 ASP.Net Core API 错误 500
- php - 如何从 PHP 中的阿拉伯字符串中删除特殊字符
- python - 如何让网站显示当地时间?