zoukankan      html  css  js  c++  java
  • 元组的魔法

    列表是有顺序的.内存上是一个链表, 列表的元素可以被修改.

    元祖和列表类似,元祖也是有序的, 它是列表的二次加工.

       1. 元素不可被修改

       2. 不能被增加或删除

    li = [11, 22, 33] # 列表, 对应类list
    tu = (11, 22, 33) # 元祖, 类tuple
    tu = (11, "哈哈", (44, 55), [11], 22, 33, )# 一般写元祖的时候,一般在最后都是加一个逗号.(加不加都没有问题)
    
    # 1.取值 
    print(tu[0]) # 索引取
    print(tu[2:4]) # ((44, 55), [11]) 切片取
    # del tu[0]  # 不能被删除
    
    # 2.循环
    for item in tu:
        print(item) # 因此,元素也是一个可迭代对象.
    
    # 3.字符串list	uple都是可迭代对象,是否可以互相转换? yes
    s = "student"
    print(tuple(s)) # ('s', 't', 'u', 'd', 'e', 'n', 't')
    li = [11, 22, 33]
    print(tuple(li)) # (11, 22, 33)
    print(list(tu)) # [11, '哈哈', (44, 55), [11], 22, 33]
    
    # 转换成str
    li = ["11", "22", "33"] # 注意,join只能用于字符串
    print("_".join(li)) # 11_22_33
    tu = ("11", "22", "33")
    print("_".join(tu)) # 11_22_33
    
    # 扩展
    li.extend("哈哈") # 字符串
    li.extend((55, 66, )) # 元祖
    li.extend([77, 88]) # 列表
    print(li) # ['11', '22', '33', '哈', '哈', 55, 66, 77, 88]
    
    # 虽然不可以对元祖进行修改,但可以对其元素的列表进行修改
    tu = (11, 22, (33, 44), [(55, 66)], 88, 99)
    print(tu[3][0][1]) # 66
    tu[3][0] = 0
    print(tu) # (11, 22, (33, 44), [0], 88, 99)
    
    # count 和 index
    tu.count(11)  # 获取指定元素在元祖中出现的次数
    tu.index(11)  # 获取指定元素的索引 

    int str list tuple bool,怎么使用?比如,有一个数据结构需要存储某个班的所有学生的名字,应该是用哪个数据类型?

    list,list在增加学生的时候直接append;且list属于可修改的数据类型.

    删除学生的时候直接remove;

    修改学生姓名的时候,根据索引值进行修改;

    而字符串属于不可修改的数据类型,tuple也属于不可修改的数据类型,因此选择list;

    在需要的功能有removeappend但是不希望对该数据进行修改的情况下,可以选择使用tuple类型;

  • 相关阅读:
    hbase权威指南PDF下载
    流畅的pythonPDF下载
    现代操作系统PDF下载
    Kafka权威指南PDF下载
    java核心技术卷1PDF下载
    计算机网络自顶向下方法PDF下载
    git gitlab 部署
    MySQL 索引、事务与存储引擎(详细解读)
    QT: Layout布局间消除间隙(修改layout内置参数)
    数据结构---归并排序
  • 原文地址:https://www.cnblogs.com/Windows-phone/p/9714995.html
Copyright © 2011-2022 走看看