zoukankan      html  css  js  c++  java
  • python笔记之孤单的元组

    列表就是一个开放的大仓库,可以放置任意东西,并能增删改查。

    但元组就是一个封闭的仓库,一旦定义就不能改变(不能增删改)。

    若真想"改变"元组,也不是没有办法滴:

    1 >>> tuple1 = (1, 2, 4, 5)
    2 
    3 >>> tuple1 = tuple1[:2] + (3,) + tuple1[2:]
    4 
    5 >>> print(tuple1)
    6 (1, 2, 3, 4, 5)

    咋一看,不是可以更改吗?!No!No!No!先上代码:

     1 >>> tuple1 = (1, 2, 4, 5)
     2 
     3 >>> print(id(tuple1))   #使用id()查看变量的内存地址。
     4 31366184
     5 
     6 >>> tuple1 = tuple1[:2] + (3,) + tuple1[2:]
     7 
     8 >>> print(id(tuple1))   #两次的tuple1的内存地址不相同,这下看官明白了没?
     9 60659496
    10 
    11 >>> print(tuple1)
    12 (1, 2, 3, 4, 5)

    再说说为什么称元组孤单呢?

    这些都是列表的方法,只有红框中的count()跟index()是元组适用的。

    另外列表有列表推导式,而元组是没有元组推导式,但是它却能创造出生成器。我在这里只能说一声元组真是悲哀啊:

    元组啊,元组啊,你能创造个生成器,但却不是姓元组的,看来你注定孤独一生了。

    >>> tuple2 = (x**2 for x in range(10))
    #tuple2的类型是一个生成器(generator)
    >>> type(tuple2)
    #不能直接像元组那样打印元素了。
    <class 'generator'>
    >>> print(tuple2)
    <generator object <genexpr> at 0x000000000308BEB8>
    
    #若想看里面的元素只能通过next()或__next__()方法
    >>> next(tuple2)
    0
    >>> next(tuple2)
    1
    >>> next(tuple2)
    4
    >>> next(tuple2)
    9
    >>> next(tuple2)
    16
    >>> next(tuple2)
    25
    >>> next(tuple2)
    36
    >>> next(tuple2)
    49
    >>> next(tuple2)
    64
    >>> next(tuple2)
    81
  • 相关阅读:
    MyCat清单
    Nginx整合Tomcat
    Nginx安装与配置
    Spring清单
    Shiro清单
    Dubbo清单
    MyBatis清单
    查询数据库的编码
    myBatis
    面试
  • 原文地址:https://www.cnblogs.com/lanhoo/p/7690701.html
Copyright © 2011-2022 走看看