如何解决尝试创建新列表时出现“ Nonetype”错误
def simplify(intlist):
nums = set(intlist)
nums = bubblesort(list(nums))
simplified_list = []
for num in nums:
count = intlist.count(num)
if count == 1:
simplified_list.append(num)
else:
simplified_list.append([num] * count)
return(simplified_list)
print(simplified_list)
simplify(intlist)
运行此代码时,我一直无法获得“ Nonetype”对象的迭代。这段代码我在做什么错了?
解决方法
心理调试:bubblesort
对其参数进行适当的操作,并隐式返回None
(由于缺少return
或空的return
语句)。或者它不能在适当的地方运行,而只是越野车,无法返回或修改参数。
无论哪种方式,都意味着nums = bubblesort(list(nums))
将nums
设置为None
,而for num in nums:
试图做for num in None:
,这显然没有意义。
假设bubblesort
并非越野车,它只是希望能够正常运行,请将前两行更改为:
nums = list(set(intlist)) # Convert to list here so list bound to name we can reference later
bubblesort(nums) # Doesn't assign to nums,as it operates in place
它应该可以工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。