美文网首页
7元组、序列[python基础]

7元组、序列[python基础]

作者: 乱弹琴给 | 来源:发表于2019-12-21 09:07 被阅读0次

元组(Tuple)的读写操作

* 

元组就是不可变的列表
*
元组使用小括号,列表使用中括号

         tup1 = (‘physics’,’chemistry’,1997,2000)

* 

元组的读取方式和列表相同

        (5,6,7)+(8,9,10) = (5,6,7,8,10) //生成一个新元组
        ('see', 'you') * 2 = ('see','you','see','you')
* 

创建

        t = ('a','b','c',1,2,3)
* 

获取数据,与列表相同

        print(t[5])    #正序索引,从第0开始获取第6个元素,也可以用倒序从-1开始。
        print(t[1:4])   #左闭右开,获取3个
        print('b' in t)    #成员运算符
* 

元组在创建后内容不可变,不可新增

        t[0] = 2       # 会报错
        t.append('f')   # 会报错
* 

如果元组内持有列表,那么列表内容是允许被修改的

        t2 = (['张三',38,5000],['李四',28,2000])
        item = t2[0]
        item[1] = 40
        print(t2)             #这样t2的第一个列表元素中的38就改为40了。
* 

元组运算符

        t3 = (1,2,3)+(4,5,6)
        print(t3)          #(1,2,3,4,5,6)
        print('see', 'you')  *2   #('see','you','see','you')
        print('see')*2              #seesee,这里会变成一个字符串
        print('see',)*2             # ('see','see')这样才会被认为是元组

列表与元组的区别与应用场景

* 

区别

        列表:内容允许扩展;内存存储动态变化;效率较低;运行时数据需要变更时使用;保存天气数据、股市数据
        元组:内容不可变;创建后固定不变;效率最高;用于保存稳定不变的数据;保存国家名、元素周期表

序列

* 

序列(Sequence)是指有序的队列
*
序列中的元素顺序时按照添加时的先后顺序排列的
*
序列中的数据通过索引获取

**序列不是一种数据类型,是一类数据结构的统称**
    比如列表、元组都是这类序列数据结构。

序列包含常用数据结构

* 

字符串(Str) //一个个字母按先后顺序排列,可以按索引获取
*
列表
*
元组
*
数字序列(Range) //0到100

    range用于表示数字序列,内容不可变
    使用range()函数创建
    语法:R  = RANGE(0,100)  //左闭右开,产生0-99这个数字序列
    range函数声明变量时不处理,只有在使用的时候才进行处理和解析。
    r1 = range(10,20)
    print(r1)    //结果是range(10,20),此时不处理
    #### 增加步长
        r2 = range(10,20,2)
        print(r2)  //10,12,14,16,18
    **创建后不可改变,r2[0:2],会在R2范围能生成一个新的range**
    ### 成员运算符in
        12 in range(10,20)

数字序列的经典案例(主要配合for循环使用)

* 

通过range遍历其他序列

        > c = "abcdefg"
            for i in range(0,len(c)):
                letter = c[i]
                print(letter)
* 

科学运算(质数,斐波那契数列)

        > 斐波那契数列 1,1,2,3,5,8.......

        '''
            result = [  ]
            for i in range(0,50):
                if i == 0 or i == 1:
                    result.append(1)
                else:
                    result.append(result[i-2] + result[i-1])
            print(result)
        '''
        > 判断质数
            
            '''
            l = 776351721
            is_prime = True
            for i in range(2,l):
                if l % i == 0 :
                    print(i)
                    is_prime = False
                    break
            if is_prime == True;
                print("{0}是质数".format(l))
            else:
                print("{0}不是质数".format(l))
            '''
# 序列类型的互相转换
    l1 = ['a','b','c']
    t1 = ('d','e','f')
    s1 = 'abc123'
    s2 = 'abc,123'
    r1 = range(1,4)
* 

list() - 转换为列表

        l2 = list(t1)   //[''d,'e','f']                 元组转为列表
        l3 = list(s1)  //['a','b','c','1','2','3']    字符串转为列表
        l4 = s2.split(',')   //['abc','123']  字符串切割后转换成列表,split默认就是转换为列表
        l5 = list(r1)           //[1,2,3]               range 转换为整数列表
* 

tuple() - 转换为元组

        和列表基本相同,但是split需要用tuple()强制转换为元组
        t2 = tuple(s2.split(','))   //('abc','123')
* 

join()、str() - 转换为字符串

        //str函数用于将单个数据转换为字符串
        //join对列表进行连接
        str(l1)    //   ['a','b','c']     只是把列表整个转为字符串
        "".join(l1)    //  abc       ""代表一个分隔符  把列表字符串元素连接成一个字符串
        "|".join(l1)   //a|b|c       
        //join必须要求所有元素都是字符串,所以如果要把range转为字符串需要特殊处理。
        '''
            s3 = ""
            for i in r1:
                s3 += str(i)
            print(s3)
        '''
        //结果返回  字符串123

相关文章

网友评论

      本文标题:7元组、序列[python基础]

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