一、元组
1.用途
元组是不可变的列表,能存多个值,若多个值只有取的需求,而没有改的需求,那么用元组最合理,因为列表占用的内存比元组大
2.定义方式
在()内用逗号隔开,可以存放任意类型的值
animals=("mouse","cattle","tiger") #animals=tuple(("mouse","cattle","tiger")) print(type(animals))
??????????强调??????????
当元组内只有一个元素时,务必记住加一个逗号,如不加逗号,这里默认变量时括号里的类型
animal=("mouse") print(type(animal)) #<class "str"> animal=("horse",) print(type(animal)) #<class "tuple">
3.常用操作+内置方法
3.1 按照索引取值(正向取+反向取) + 切片(顾头不顾尾) ?只能取?
animals=("mouse","cattle","rabbit","tiger","horse")
#正向 print(animals[0:2]) #反向 print(animals[::-1]) #不能改值 animals[0]="hello" TypeError: ‘tuple‘ object does not support item assignment
3.2 长度
animals=("dog","cat","rabbit","mouser","horse") print(len(animals))
3.3 成员运算in和not in
animals=("cat","dragon","horse","sheep") print("horse" in animals)
3.4 循环
course=("physical","mathmatric","english","biology") for item in course: print(item)
4、该类型总结
4.1 存一个值或者多个值
可以存多个值,值可以时任意的数据类型
4.2 有序或者无序
有序
4.3 可变或者不可变
不可变
names=("luffy","sauro","luffy","brooke","luffy") #del names[0] #error #names[0]="LUUFFY"#error print(names.count("luffy")) print(names.index("luffy",0,4))
5 列表与元组可变不可变的底层原理
??????列表可变的底层原理??????
指的时索引所对应的值的内存地址是可以改变的
??????元组不可变的底层原理??????
指的是索引所对应的值的内存地址是不可以改变的
反过来说,只要索引对应值的内存地址没有改变,那么元组始终是没有改变的
元组不变指的是只要索引对应的内存地址没有变,那么元组始终是没有改变的 list=("hello","boy",["sleep","read"]) print(id(list)) #1270839132304 print(id(list[0])) # 2712094024512 print(id(lsit[1])) # 2712094863632 print(id(list[2])) # 2712094065096 list[2][2]="eat" print(list) print(id(list[2])) #1270839144720
原文地址:https://www.cnblogs.com/Smart1san/p/9125443.html
时间: 2024-10-29 08:13:31