加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

嵌套列表Python 3中的数字平方

发布时间:2020-12-16 23:19:33 所属栏目:Python 来源:网络整理
导读:我必须解决的问题是将嵌套列表作为输入,并返回相同的嵌套列表,除了每个元素是以前存在于该点中的元素的平方.这是我的代码 def treemap(lst):... for element in lst:... if element == type(list):... return treemap(element)... else:... element=element*
我必须解决的问题是将嵌套列表作为输入,并返回相同的嵌套列表,除了每个元素是以前存在于该点中的元素的平方.这是我的代码
>>> def treemap(lst):
...     for element in lst:
...         if element == type(list):
...             return treemap(element)
...         else:
...             element=element**2
...     return lst
>>> lst = [1,2,3,[4,[5,6],7]]
>>> print(treemap(lst))

现在我收到一个错误,说’int’对象不可迭代.我假设这意味着它正在尝试为整数类型运行循环,这对我来说没有意义,因为我只重新运行列表类型的函数.

解决方法

>不要在递归调用中返回,一旦返回,您将停止处理所有剩余元素
> element == type(list)不正确,因为type(list)是< class'type'>它永远不会等于列表中的任何项目.而是使用isinstance
>在基本情况下,您需要按索引访问元素以反映更改
def treemap(lst):
    for i,element in enumerate(lst):
        if isinstance(element,list):
            treemap(element)
        else:
            lst[i] = lst[i]**2
    return lst

输出:

[1,4,9,[16,[25,36],49]]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读