元组就是“一个不可变的列表”
一:作用
按照索引/位置存放多个值,只用于读,不用于改
二:定义
t = (1,1.3,'aaa') #t = tuple((1,1.3,'aaa'))
print(t,type(t))
单独一个括号,代表包含的意思
x = (10) #单独一个括号,代表包含的意思
print(x,type(x))
如果元组中只有一个元素,必须加逗号
x = (10,) #如果元组中只有一个元素,必须加逗号
print(x,type(x))
t = (1,1.3,'aaa') #t = (0->值1的内存地址,1->值1.3的内存地址,2->值'aaa'的内存地址,)
#只要元组内元素的内存地址没变,元组就是不可变
元组不能改,指的是不能改里面的内存地址
t = (1,[11,22])
print(t,id(t[0]),id(t[1]))
t[1][0] = 33 # 元组内的列表的元素还是可以改的
print(t,id(t[0]),id(t[1]))
(1, [11, 22]) 2038884272 59297864
(1, [33, 22]) 2038884272 59297864
三:类型转换
print(tuple('hello'))
print(tuple([1,2,3]))
print(tuple({'name':egon,'age':18}))
四:内置方法
1.按照索引取值(正向取值+反向取值)只能取
t = (111,'egon','hello')
正向取值
print(t[0])
反向取值
print(t[-1])
2.切片(顾头不顾尾,步长)
t=('aa','bbb','cc','dd','eee')
print(t[0:3])
print(t[::-1])
('aa', 'bbb', 'cc')
('eee', 'dd', 'cc', 'bbb', 'aa')
3.长度
t=('aa','bbb','cc','dd','eee')
print(len(t))
5
4.成员运算 in 与 not in
判断一个子字符串是否存在于一个大字符串中
t=('aa','bbb','cc','dd','eee')
print('aa' in t)
True
5.循环
t=('aa','bbb','cc','dd','eee')
for x in t:
print(x)
aa
bbb
cc
dd
eee
五:index 和 count补充:
index:找出该字符串在元组中的索引位置,找不到就会报错
t=(2,3,111,111,111,111)
print(t.index(111))
print(t.index(1111111111))
2
ValueError: tuple.index(x): x not in tuple
count:统计该字符串在元组中出现的次数
t=(2,3,111,111,111,111)
print(t.count(111))
4