如何修复TypeError:“ NoneType”对象在Python中不可迭代?

时间:2019-06-21 11:31:00

标签: 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, 53, 3, 5, 2, 5, 2, 6, 0)))

2 个答案:

答案 0 :(得分:2)

  

list.sort()将对列表进行原位排序,但是返回值为None。

     

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

因此正确的代码应为:

def common_elements(tuple1, tuple2):
    set1 = set(tuple1)
    set2 = set(tuple2)
    lst1 = list(set1.intersection(set2))
    return tuple(sorted(lst1))

print(common_elements((1, 2, 3, 4), (4, 53, 3, 5, 2, 5, 2, 6, 0)))

答案 1 :(得分:0)

sort()对列表进行排序并返回None。您需要调用sort(),然后在两个不同的语句中返回相同的列表:

lst1.sort()
return tuple(lst1)