Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 我的列表理解代码中的错误在哪里?_Python 3.x - Fatal编程技术网

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)