美文网首页优雅的大蟒蛇——Python
列表list中都可以存放什么东东?

列表list中都可以存放什么东东?

作者: 帕博雷克斯丢丢 | 来源:发表于2018-03-05 21:11 被阅读0次

问题由此引出:

闭包

注意到返回的函数在其定义内部引用了局部变量args,所以,当一个函数返回了一个函数后,其内部的局部变量还被新函数引用,所以,闭包用起来简单,实现起来可不容易。
另一个需要注意的问题是,返回的函数并没有立刻执行,而是直到调用了f()才执行。我们来看一个例子:

def count():
    fs = []
    for i in range(1, 4):
        def f():
             return i*i
        fs.append(f)
    return fs

f1, f2, f3 = count()

在上面的例子中,每次循环,都创建了一个新的函数,然后,把创建的3个函数都返回了。
你可能认为调用f1()f2()f3()结果应该是149,但实际结果是:

>>> f1()
9
>>> f2()
9
>>> f3()
9

全部都是9!原因就在于返回的函数引用了变量i,但它并非立刻执行。等到3个函数都返回时,它们所引用的变量i已经变成了3,因此最终结果为9

  • 返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。
所以想到:“列表list中到底都可以放些什么东西?”
立马做个实验,图片放在下面:
list中可以存放函数.JPG
至少是可以存放函数的!

相关文章

  • 列表list中都可以存放什么东东?

    问题由此引出: 闭包注意到返回的函数在其定义内部引用了局部变量args,所以,当一个函数返回了一个函数后,其内部的...

  • Redis 数据类型—— List列表 HashMap散列 S

    一、 列表 List list中元素可以重复,相当于数组可以存放一些数据。 二、散列HashMap 生产中可以存放...

  • python基础知识

    集合容器列表: list是一种有序的集合,可以随时添加和删除其中的元素、列表可以存放各种类型的 数据列表包含了增...

  • java开发map、list区别

    一、是什么 List(列表) 特征是其元素以线性方式存储,集合中可以存放重复对象。 Map(映射) 是一种把键对象...

  • Python--容器之 List 、Tuple 、Set、Dic

    容器,顾名思义是用来存放数据,并对容器内数据进行各种操作。 一、列表list 顺序表可以同时存放任意类型的数据,元...

  • Python2

    列表和元组。List tuple 列表是可变长度的数据类型,可以用来给变量赋值,用数组的形式来存放混合类型数据。里...

  • Python 序列操作进阶

    Python 的序列(sequence)通常指一个可迭代的容器,容器中可以存放任意类型的元素。其中列表(list)...

  • 收集起来——列表与字典 父与子的编程之旅 学习笔记(10)201

    第十二章 列表与字典 列表(list)与字典(dictionary)都是集合。其中,列表非常有用,很多程序中都用到...

  • Mr.Li--python-list

    列表:有序,可以重复 增加:list.append(值),list.insertt(下标,值),extend(列表...

  • 列表 类

    列表List 可以想象成一个篮子,里面可以存放各种东西,这些东西叫元素。 从篮子里拿出某个元素叫提取,拿出好几个呢...

网友评论

    本文标题:列表list中都可以存放什么东东?

    本文链接:https://www.haomeiwen.com/subject/wukkfftx.html