美文网首页Python基础
Python入门(六)

Python入门(六)

作者: 一路向前_莫问前程_前程似锦 | 来源:发表于2018-09-08 15:16 被阅读3次
    元组
    列表用[]或者list函数,元组用()或者tuplue
    元组是Python的另一种特色的数据类型
    元组和列表是相似的可以存储不同类型的数据

    但是!划重点:元组是不可改变的,创建后就不能做任何修改操作了,就是说不可以删除,增加,但是可以查找,取词等

    创建元组
    用逗号隔开的就是元组,但是为了美观和代码可读性,我们一般加小括号
    a =1,2,3
    type(a)
    tuple
    b=(4,5,6)
    type(b)
    tuple
    c=1,2,3,4.5,[1,2]
    c[4]
    [1, 2]
    
    特殊情况:

    创建一个元素的元组时必须加逗号

    cc=(1,)
    ccc=1,
    cccc=(1)
    type(cc)
    tuple
    type(ccc)
    tuple
    type(cccc)
    int
    
    注意:上面的只加了小括号的,创建出来的是int整型,而在加了逗号基础上,是否使用小括号都是ok的,都创建的是元组
    元组的基本操作 和列表类似,元组也有很多基本操作:
    1.索引
    2.切片
    3.连接
    4.复制
    5.对内部元素循环
    6.查找元组中是否有某元素
    7.删除元组
    8.返回元组中最大值和最小值
    tuple2=1,2,3,4,5,6,7
    tuple2[1]
    2
    tuple2
    [1:6:2]
    (2, 4, 6)
    tuple2
    [6:2:-1]
    (7, 6, 5, 4)
    tuple2[:]
    (1, 2, 3, 4, 5, 6, 7)
    tuple2[::]
    (1, 2, 3, 4, 5, 6, 7)
    tuple2[::-1]
    (7, 6, 5, 4, 3, 2, 1)
    tuple2[::-2]
    (7, 5, 3, 1)
    max(tuple2)
    7
    min(tuple2)
    1
    tuple2[-2]
    6
    tuple2+ccc
    (1, 2, 3, 4, 5, 6, 7, 1)
    tuple2*2
    (1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7)
    for i in tuple2:    
    print(i)
    1234567
    2 in tuple2 ##判断元素是否存在
    True
    len(tuple2)
    7
    tuple2.index(2) ##返回索引值
    1
    tuple2[1]
    2
    
    除此之外,在列表可行的
    pop()
    append()
    extend()
    remove()
    index()
    都在元组中不可用
    tuple2.pop---------------------------------------------------------------------------
    AttributeError                           
     Traceback (most recent call last)<ipython-input-42-2334d95b2b71>
     in <module>()----> 1 tuple2.popAttributeError: 'tuple' object has no attribute 'pop'
    
    元组和列表相互转化
    list1=[1,2,3]
    tuple11=tuple(list1)
    type(tuple11)
    tuple
    list22=list(tuple2)
    type(list22)
    list
    
    没错,只要在原来的列表外套一层tuple()就可以转为元组
    在原来的元组外面套一层list()就可以转为列表还记得列表生成式么?
    这次,把元组也加进来
    列表生成式
    [m+n for m in "ABC" for n in "ABC"]
    ['AA', 'AB', 'AC', 'BA', 'BB', 'BC', 'CA', 'CB', 'CC']
    [(m,n) for m in "ABC" for n in "ABC"] ##加个元组符号
    [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
    [[m,n] for m in "ABC" for n in "ABC"] ##加个列表符号
    [['A', 'A'], ['A', 'B'], ['A', 'C'], ['B', 'A'], ['B', 'B'], ['B', 'C'], ['C', 'A'], ['C', 'B'], ['C', 'C']]
    [(m,n) for m in "ABC" for n in "ABC" if m!=n] ##加个元组符号
    [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
    [[m,n] for m in "ABC" for n in "ABC" if m!=n] ##加个列表符号
    [['A', 'B'], ['A', 'C'], ['B', 'A'], ['B', 'C'], ['C', 'A'], ['C', 'B']]
    
    这样就ok了,再一次体现出列表生成式的强大
    回头想想
    如果我们用一般循环,怎么写?
    list1=[]##先建立一个空的
    for i in "ABC":
    for j  in "ABC":
     if i!=j:
    list1.append((i,j))
    list1
    list1[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
    
    思路是,先创建一个空列表,然后双层循环,判断两个字符串中取的元素是否相等,不相等则将其组成元组放入列表中
    元组解包
    tuple1=(1,2,34,5) #元组打包
    a,b,c,d=tuple1 
    #元组解包
    print(a,b,c,d)
    1 2 34 5
    

    相关文章

      网友评论

        本文标题:Python入门(六)

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