首页 > 解决方案 > 如何修复 TypeError:“NoneType”对象在 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)))

标签: python

解决方案


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)))

推荐阅读