Python 3.x 我的列表理解代码中的错误在哪里?
我知道这听起来可能是一个基本的问题,但我最近正在阅读清单。然后我尝试了以下代码,但它给了我一个错误(无效语法)Python 3.x 我的列表理解代码中的错误在哪里?,python-3.x,Python 3.x,我知道这听起来可能是一个基本的问题,但我最近正在阅读清单。然后我尝试了以下代码,但它给了我一个错误(无效语法) Sp问题出在哪里???您可以创建一个字符列表,这些字符只出现一次。因为它们只出现一次,所以不会在列表中重复 或者,如果需要不同的长度,请使用set{}(无重复) [r=r+1表示l1中的c,如果l1.count(c)==1]是无效语法,因为列表中不能有赋值运算符 如果要使用列表理解,请在元素出现时计数1,否则计数0,然后将计数相加 l1 = ['a','b','c','c','d','
Sp问题出在哪里???您可以创建一个字符列表,这些字符只出现一次。因为它们只出现一次,所以不会在列表中重复 或者,如果需要不同的长度,请使用set
{}
(无重复)
[r=r+1表示l1中的c,如果l1.count(c)==1]
是无效语法,因为列表中不能有赋值运算符
如果要使用列表理解,请在元素出现时计数1,否则计数0,然后将计数相加
l1 = ['a','b','c','c','d','e']
#Count 1 for an element occuring once, otherwise count 0, and sum up the counts
r = sum([1 if l1.count(c) == 1 else 0 for c in l1])
print(r)
输出将为4
另一种方法是使用计算字符的频率,并计算有多少个值为1
from collections import Counter
l1 = ['a','b','c','c','d','e']
#Take a counter
c = Counter(l1)
#Count 1 for an element occuring once, otherwise count 0, and sum up the counts
r = sum([1 if v == 1 else 0 for v in c.values()])
print(r)
输出将是
4
我想您只是希望这样
l1 = [1,2,3,4,5,6,7,8,2,6,8]
print(len([x for x in l1 if l1.count(x)==1]))
输出->
5
即(1,3,4,5,7
)列表中不能有作业。如果我理解,您正在尝试计算列表中的唯一项,因此您可以用一种非常简单的方法进行计算:
r = len([x for x in l1 if l1.count(x) == 1])
print(r)
r=r+1
的返回值是多少,您正在构建一个该值的列表…实际上我正在尝试计算列表中单个出现的字符数,r是一个计数器,它将计算单个出现的字符数您可以执行len(set(l1))。集合很好不,你不能做len(set(l1)),因为他只想要唯一的项目。
l1 = [1,2,3,4,5,6,7,8,2,6,8]
print(len([x for x in l1 if l1.count(x)==1]))
r = len([x for x in l1 if l1.count(x) == 1])
print(r)