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”对象的迭代。这段代码我在做什么错了?
答案 0 :(得分:0)
心理调试: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
它应该可以工作。