day3元组
""" 字符串切片 """ str1 = 'abcdefghi' print(str1[:]) print(str1[1:2]) print(str1[1:1]) print(str1[1:4:2]) print(str1[1:4:-1]) print(str1[4:1:-1]) print(str1[::-1]) """ abcdefghi b # 值就是空 bd # 值就是空 edc ihgfedcba """ """ tuple是固定不变的,一旦变成tuple,tuple中的每一个元素都不可被改变 tuple里面的元素不可替换的。但是这针对的是仅包含基础数据类型(数字类型、布尔类型、字符串类型)的数据,对于组合数据类型,则不受这个约束。 """ T = ('Alice', 'Bob', 'Candy', 'David', 'Ellena') print(T[0]) # Alice print(T[1:3]) # ('Bob', 'Candy') t = list(T) print(t) # ['Alice', 'Bob', 'Candy', 'David', 'Ellena'] #T[0] = 'hello' #print(T) list1 = range(10) print(list1) tup = tuple(list1) print(tup) """ count():用来统计tuple中某个元素出现的次数,没有该元素时,返回0 index():返回指定元素的下标,当一个元素多次重复出现时,则返回第一次出现的下标位置。若是不存在的元素会报错 """ T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9) print(T.count(1)) print(T.count(4)) print(T.index(1)) print(T.index(1, 2)) # 从下标2开始找 # print(T.index(4)) # ValueError: tuple.index(x): x not in tuple """ 3 0 0 6 """ """ 在某次考试中,班上的成绩如下:(100, 69, 29, 100, 72, 99, 98, 100, 75, 100, 100, 42, 88, 100), 请统计满分(100分)同学的数量。 """ tup2 = (100, 69, 29, 100, 72, 99, 98, 100, 75, 100, 100, 42, 88, 100) print(tup2.count(100)) # 6 """ 元组定义:() (1,) 因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果(1)被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。 因此,要定义只有一个元素的tuple,需要在元素后面添加一个逗号, """ T = () print(type(T)) T = (1) print(type(T)) T = (1,) print(type(T)) """ <class 'tuple'> <class 'int'> <class 'tuple'> """ print('************************/n') # T的元素中,有多少个tuple。 T = ((1+2), ((1+2),), ('a'+'b'), (1, ), (1,2,3,4,5)) print(type((1+2))) print(type(((1+2),))) print(type(('a'+'b'))) print(type((1, ))) print(type((1,2,3,4,5))) """ tuple里面的元素不可替换的。但是这针对的是仅包含基础数据类型(数字类型、布尔类型、字符串类型)的数据,对于组合数据类型,则不受这个约束。 """ T = (1, 'CH', [3, 4]) L = T[2] print(L) # [3, 4] L[1] = 40 print(L) # [3, 40] # 虽然tuple中的list元素改变了,但是tuple本身指向的list仍然是同一个list,list本身并没有改变,改变的只是list里面的一个元素, # 这是tuple所约束不到的范围 print(T) # (1, 'CH', [3, 40]) """ T = (1, 'CH', [3, 4]) L2 = [3, 40] # 尝试替换tuple中的list T[2] = L2 # 报错 TypeError: 'tuple' object does not support item assignment """ """ 练习: T = (1, 'CH', [3, 4]) tuple里面包含list,导致tuple是可变的,请修改T的定义,不改变基本数据类型的数据,使T是不可变的 """ T = (1, 'CH', (3, 4)) L = T[2] # L[1] = 40 # TypeError: 'tuple' object does not support item assignment