python的tuple()元组数据类型的使用方法以及案例

时间:2021-04-13 13:51:06

一、元组的概念介绍

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