如何修复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
,然后您可以围绕所有这些进行包装。