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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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将集合转换为列表,为什么';生成器对象不可调用';出现_Python 3.x - Fatal编程技术网

Python 3.x 假设我试图用python将集合转换为列表,为什么';生成器对象不可调用';出现

Python 3.x 假设我试图用python将集合转换为列表,为什么';生成器对象不可调用';出现,python-3.x,Python 3.x,我有一个列表l,其中包含[1,2,5,4,3,6,6] 我运行一个set(l),我想得到序列中的第二大,所以我希望使用类似于list(set(l)).sort()的东西[-2]。但是,当我尝试此操作时,我收到一条消息说“generator对象不可调用”。除了您很可能重新定义了列表或集合, ist方法sort就地进行排序,并且不返回任何值-因此您将得到一个 “非类型”对象不可下标 当你把剩下的工作做好后就出错了 因此,从干净的Python会话开始: a = [5,7, 9, 10, 2, 3, 1

我有一个列表
l
,其中包含
[1,2,5,4,3,6,6]


我运行一个
set(l)
,我想得到序列中的第二大,所以我希望使用类似于
list(set(l)).sort()的东西[-2]
。但是,当我尝试此操作时,我收到一条消息说“generator对象不可调用”。

除了您很可能重新定义了
列表
集合
, ist方法
sort
就地进行排序,并且不返回任何值-因此您将得到一个

“非类型”对象不可下标

当你把剩下的工作做好后就出错了

因此,从干净的Python会话开始:

a = [5,7, 9, 10, 2, 3, 10]
b = set(a)
print(sorted(list(b))[-2])

将起作用。

如注释中所述,列表/集合先前已重新定义,因此出现错误。 我在python控制台的一个新实例中运行了以下代码

n = int(input())
l=[int(input()) for _ in range(n)]
print(sorted(list(set(l)))[-2])

假设输入是
[1,2,5,4,3,6,6]
,代码在序列上运行一个集合,然后继续将其转换为一个列表,之后可以进行索引

我感觉您在代码的某个地方使用了
集合
作为变量名。您所做的是错误的,但这不是您应该得到的错误。你应该了解一下
Nonetype
。尝试:
排序(列表(集合(l))[-2]
。另外,请确保没有名为
set
generator
对象。
list
也可能已被重新定义。