Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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
如何修复TypeError:';非类型';对象在Python中不可编辑?_Python - Fatal编程技术网

如何修复TypeError:';非类型';对象在Python中不可编辑?

如何修复TypeError:';非类型';对象在Python中不可编辑?,python,Python,我如何解决这个问题 def common_elements(tuple1, tuple2): set1 = set(tuple1) set2 = set(tuple2) lst1 = list(set1.intersection(set2)) return tuple(lst1.sort()) #TypeError: 'NoneType' object is not iterable print(common_elements((1, 2, 3, 4), (4,

我如何解决这个问题

def common_elements(tuple1, tuple2):
    set1 = set(tuple1)
    set2 = set(tuple2)
    lst1 = list(set1.intersection(set2))
    return tuple(lst1.sort()) #TypeError: 'NoneType' object is not iterable

print(common_elements((1, 2, 3, 4), (4, 53, 3, 5, 2, 5, 2, 6, 0)))
sort()
对列表进行适当排序并返回
None
。您需要调用
sort()
,然后在两个不同的语句中返回相同的列表:

lst1.sort()
return tuple(lst1)
sort()将对列表进行就地排序,但返回值为None

sorted(list)将返回已排序的新列表对象

因此,正确的代码应为:

def公共_元素(tuple1、tuple2):
set1=set(元组1)
set2=set(元组2)
lst1=列表(集合1.交叉点(集合2))
返回元组(已排序(lst1))
打印(公共_元素((1,2,3,4)、(4,53,3,5,2,5,2,6,0)))

我使用了它:返回元组(排序(lst1)),一切正常。谢谢你,伙计@SetUpSim您实际上可以直接执行排序(set1.intersection(set2)),这将生成列表,避免中间的
lst1
,然后您可以围绕所有这些进行包装。