day09-元组

元组就是"一个不可变的列表"   (可以这么理解)
1、作用:按照索引/位置存放多个值,只用于读不用于改

2、定义:()内用逗号分隔开多个任意类型的元素

t = (1, 1.3, 'aa')  # t=tuple((1,1.3,'aa'))
print(t, type(t))
# (1, 1.3, 'aa') <class 'tuple'>

x=(10) # 单独一个括号代表包含的意思
print(x,type(x))
# 10 <class 'int'>

t=(10,) # 如果元组中只有一个元素,必须加逗号
print(t,type(t))
# (10,) <class 'tuple'>

t=(1,1.3,'aa') # t=(0->值1的内存地址,1->值1.3的内存地址,2->值'aaa'的内存地址,)
t[0]=11111    # 元组不能赋值,这样就会报错
# TypeError: 'tuple' object does not support item assignment

t=(1,[11,22]) # t=(0->值1的内存地址,1->值[1,2]的内存地址,)
print(id(t[0]),id(t[1]))   # 里面的是列表,可以修改,因为列表整体的内存地址不会改变,而修改的是列表里的对应的值
# t[0]=111111111 # 不能改
# t[1]=222222222 # 不能改

t[1][0]=11111111111111111
# print(t)
print(id(t[0]),id(t[1]))

# 140707153233568 2081790884736
# 140707153233568 2081790884736

3、类型转换

print(tuple('hello'))   # 字符串,逐个输出
print(tuple([1,2,3]))   # 元组分开
print(tuple({'a1':111,'a2':333})) # 字典展开对应key

# ('h', 'e', 'l', 'l', 'o')
# (1, 2, 3)
# ('a1', 'a2')

4、内置方法
优先掌握的操作:
1、按索引取值(正向取+反向取):只能取

t=('aa','bbb','cc')
print(t[0])  # 取第一个值
print(t[-1]) # 取倒数第一值

2、切片(顾头不顾尾,步长)

t=('aa','bbb','cc','dd','eee')
print(t[0:3])   # 取前三个值
print(t[::-1])  # 取倒序

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、循环

for x in t:
    print(x)

aa
bbb
cc
dd
eee

6、其他

t=(2,3,111,111,111,111)
print(t.index(111))  # 统计个数
print(t.index(1111111111))    # 不存在就报错

 

posted @ 2020-03-11 16:23  学海无涯苦中作乐  阅读(130)  评论(0编辑  收藏  举报