zoukankan      html  css  js  c++  java
  • python之元组操作

    1、元组创建

    1 tup1 = ('physics', 'chemistry', 1997, 2000)
    2 tup2 = (1, 2, 3, 4, 5 )
    3 tup3 = "a", "b", "c", "d"
    4 tup4 =() #创建空元祖
    5 tup5=(50,)#元组中只包含一个元素时,需要在元素后面添加逗号
    6 tup6=50,
    7 list1=[34,123,1]
    8 tup7=tuple(list1)

    2、元祖访问

    1 tup1 = ('physics', 'chemistry', 1997, 2000)
    2 print(tup1[0]) #使用下标索引来访问元组中的值

    3、元组操作

    tup1 = (12, 34.56)
    tup2 = ('abc', 'xyz')
    tup3 = tup1 + tup2 #对元组进行连接组合
    del tup1 #删除元组
    tup4=('Hi!',) * 4 #元组复制
    cnt=len((1, 2, 3)) #计算元素个数
    isin=3 in (1, 2, 3) #元素是否存在
    for x in (1, 2, 3): #元组迭代 
        print x
    a=max(tup1) #最大元素
    b=min(tup1) #最小元素

    4、元组解包

    1 tup=(1,2,3)
    2 a,b,c=tup

    5、值交换

    1 a='wer'
    2 b='dfgh'
    3 a,b=b,a

    6、元组与列表

    ①元组不可修改,列表可修改

    ②元组占用空间小

    ③可以将元祖用作字典的键

    ④命名元组可以作为对象的替代

    ⑤函数参数是以元组形式传递的

    7、命名元组

    命名元组是元组的子类,既可以通过.name访问值,也可以通过位置下标访问。

    from collections import namedtuple
    Duck=namedtuple('Duck','bill tail')
    duck=Duck('wide orange','long')
    >>>duck
    Duck(bill='wide orange',tail='long')
    >>>duck.bill
    wide orange
    >>>duck.tail
    long

    也可以使用字典来构造:

    parts={'bill':'wide orange','tail':'long'}
    duck2=Duck(**parts)
    >>>duck
    Duck(bill='wide orange',tail='long')

    其中**parts是个关键词变量,作用是将parts字典中的键值抽取出来作为参数提供给Duck()使用。等价于:

    duck2=Duck(bill='wide orange',tail='long')

    命名元组不可变,但可以替换其中某些域的值并返回一个新的命名元组:

    duck3=duck2._replace(tail='magnificent',bill='asdasd')

    命名元组无法通过,name添加新的域。

    命名元组的好处:

    • 和不可变对象相似
    • 与使用对象相比,使用命名元组在时间和空间上效率更高
    • 可以使用.对属性进行访问,而不需要使用字典风格的方括号
    • 可以作为字典的键
  • 相关阅读:
    transition
    Java自增陷阱
    不同编码格式中,字节和字符的关系
    表单重复提交
    source folder和package的区别
    @test 测试案例不能添加参数
    http协议content-type
    jdbc的缺点和mybatis的优点
    ==和equals的区别
    spring IOC和AOP
  • 原文地址:https://www.cnblogs.com/ivan-count/p/10494366.html
Copyright © 2011-2022 走看看