一、元组的概念介绍
1、元组是列表的二次加工
列表可以被修改
列表的类型
list
li = [1,2,3,4,5,6]
2、元组的元素不可被修改,不能被增加或者删除,(只是针对元组的一级元素是不可以修改的,元组里面的二级列表元素是可以被修改的,就是元组里面嵌套着列表)可以被for循环,所以元组也是一个可迭代对象,元组也是有序的
元组的类型
tuple
tu = (1,2,3,4,5,6)
3、元组可以包含 数字、字符串,列表,元组
在写元组的时候在末尾一定要加一个, 逗号,不然区分不出来是参数还是元组
比如下面这个是个参数跟元组是一样的都是()
我们自己在写代码的时候在元组末尾加个逗号,就能区分出来了
sort(self, key=None, reverse=False)
tu = (11,"","gouguoqi",(33,99),[66,""],True,)
print (tu) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py (11, '', 'gouguoqi', (33, 99), [66, ''], True)
4、通过索引获取元组内的元素
tu = (11, "", "gouguoqi", (33, 99), [66, ""], True,)
v = tu[1]
print(v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py 22
如何取到元组里面的嵌套的列表里面的的元素的元素
tu = ("","",["",("ae",66,"",),90])
v = tu[2][1][2]
print (v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py 99
5、通过切片获取元组内一个范围内的元素
tu = (11, "", "gouguoqi", (33, 99), [66, ""], True,)
v = tu[1:5] 大于等于1小于5
print(v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py ('', 'gouguoqi', (33, 99), [66, ''])
6、可以被for循环,所以元组也是一个可迭代对象(字符串、列表、元组都是)
tu = (11, "", "gouguoqi", (33, 99), [66, ""], True,)
for n in tu:
print (n) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py 11 22 gouguoqi (33, 99) [66, ''] True
二、字符串、列表、元组 之间的相互转换
我们之前把数字转换成字符串是这样写 S = str(a) a是数字,S是转换成的结果
我们之前把字符串换成数字是这样写 S = int(a) a是字符串,S是转换成的结果
把字符串换成列表就是 S = list(a) a是字符串,S是转换成的结果
把列表转换成字符串 S = str(a) a是列表,S是转换成的结果
(1)将字符串转换为元组
S = "gouguoqi"
v = tuple(S)
print (v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py ('g', 'o', 'u', 'g', 'u', 'o', 'q', 'i')
(2)将列表转换为元组
li = ["beiye",22,33]
v = tuple(li)
print (v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py ('beiye', 22, 33)
(3)将元组转换为列表
tu = ("miaoye",66,77)
v = list(tu)
print (v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py ['miaoye', 66, 77]
(4)将元组转换为字符串(跟列表转换为字符串一样)
第一种方法,自己写for循环,一个一个的循环,因为元素中既有数字,又有字母, 所以得定义一个空,然后循环的时候转换成str类型,才能进行相加,一个一个的循环,最 后把a打印出来
tu = ("miaoye",66,77)
v = str(tu)
print (type(v),v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py <class 'str'> ('miaoye', 66, 77)
虽然是一个字符串的类型了,但是结果不是我们想要的,所以我们得自己写for循环了
tu = ("miaoye", 66, 77)
a = ""
for n in tu:
b = str(n)
a += b
# a = a + b
print(a) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py miaoye6677
第二种方法,当元组里面都是字符串的时候,我们就可以用join的方法进行拼接了,有数字就不能用join了,就得用上面的自己写for循环了
tu = ("miaoye","gou")
v = "_".join(tu)
print (v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py miaoye_gou
7.修改元组里面的二级列表中的元素 *****重要
tu = ("", "", ["", ("ae", 66, "",), 90])
tu[2][0] = ""
print(tu) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py ('', '', ['', ('ae', 66, ''), 90])
8.元组这里就提供了2个方法
(1)count(self, value) 计数
计算指定的元素在元组里面出现了几次
T.count(value) -> integer -- return number of occurrences of value T = ("","","","","woai")
v = T.count("")
print (v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py 2
(2)index(self, value, start=None, stop=None)
找到第一个指定的元素的索引之后就不再继续往下找了,也可以指定范围
T.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present. T = ("","","","","","woai")
v = T.index("")
print (v) C:\python35\python3.exe D:/pyproject/day12列表/tuple.py 1
10、元组的in操作,判断元素是否包含在元组中
T = ("","",33)
v = 33 in T
print (v) C:\python35\python3.exe D:/pyproject/day12列表/dict-way.py True