尝试创建新列表时出现“ Nonetype”错误

时间:2020-11-03 21:43:08

标签: python list 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”对象的迭代。这段代码我在做什么错了?

1 个答案:

答案 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

它应该可以工作。