【问题标题】:TypeError: 'NoneType' object is not iterable :(TypeError:“NoneType”对象不可迭代:(
【发布时间】:2017-05-21 04:53:31
【问题描述】:

我想做的是通过给定的集合制作一个powerset。数字。 但我现在陷入了一个问题。 我不明白为什么 python 只是说 NoneType 错误...

+Q。我想知道 list_1 是否可以与本地列表交互。 在我的递归函数中,我想将第三个参数描述为 list_ 但这样做会出现其他问题。 可能带有 list_ 的过程不适用于真正的列表 list_1。

def powerset(nums):
    list_1=[]
    recursion(0,nums,list_1)
    print (list_1)

def recursion(start,nums,list_1):
    if start>len(nums)-1:
        list_1.append([])
        return 0
    recursion(start+1,nums,list_1)
    i=0
    save_list=list_1
    save_len=len(list_1)
    while i<save_len:
        list_1.extend(save_list[i].append(nums[start]) )
        i += 1

【问题讨论】:

  • append 方法返回None,而不是修改后的列表。

标签: python list recursion nonetype


【解决方案1】:
def powerset(nums):
    list_1=[]
    recursion(0,nums,list_1)
    print (list_1)

def recursion(start,nums,list_):
    if start>len(nums)-1:
        list_.append([])
        return 0
    recursion(start+1,nums,list_)
    i=0
    save_list=list_
    save_len=len(list_)
    while i<save_len:
        listy=save_list[i]
        listy.append(nums[start])
        list_[i].extend(listy)
        i += 1

试试这个。正如 chepner 所说,您的问题在于 append。

【讨论】:

    猜你喜欢
    • 2012-08-25
    • 2017-08-29
    • 2016-08-30
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多