一、元组
元组的定义:其实我自己理解的元组就是不能修改的列表,至于为什么不能修改,应该是防止程序不小心变动重要的数据吧!
元组的创建:
元组在小括号中添加元素,并使用逗号隔开
例子:
#!/usr/bin/env python
tup= ("Alex","huige",1,"lisa")print(tup)
输出:
C:\Python35\python.exe D:/linux/python/all_test/listandtup.py
('Alex', 'huige', 1, 'lisa')
元组和列表的不同
1、列表能修改而元组不能
例:
tup = ("Alex","huige",1,"lisa")print(tup)
tup[0]= "junge"list= ["a","b","c"]
list[0]= "s"
print(list)
就会报错
Traceback (most recent call last):
('Alex', 'huige', 1, 'lisa')
File"D:/linux/python/all_test/listandtup.py", line 13, in tup[0]= "junge"TypeError:'tuple' object does not support item assignment
2、列表能在不同的标志位插入内容,而元组不行
例子:
tup = ("Alex","huige",1,"lisa")print(tup)
tup.insert(1,"HH")
list= ["a","b","c"]
list.insert(2,"e")print(list)
报错
C:\Python35\python.exe D:/linux/python/all_test/listandtup.py
('Alex', 'huige', 1, 'lisa')
Traceback (most recent call last):
File"D:/linux/python/all_test/listandtup.py", line 13, in tup.insert(1,"HH")
AttributeError:'tuple' object has no attribute 'insert'
3、列表可以删除,元组不可以
例
tup = ("Alex","huige",1,"lisa")print(tup)
list= ["a","b","c"]print(list)dellistprint(list)deltupprint(tup)
报错
C:\Python35\python.exe D:/linux/python/all_test/listandtup.py
('Alex', 'huige', 1, 'lisa')
Traceback (most recent call last):
['a', 'b', 'c']
File"D:/linux/python/all_test/listandtup.py", line 18, in
print(tup)
NameError: name'tup' is not defined
说了那么多元组不能做的,那元组能做什么?
那下面我们就来唠一唠
1、最基础的能访问
tup = ("Alex","huige",1,"lisa") #定义元组
print(tup) #打印元组
print(tup[0]) #打印元组第一个元素
print(tup[0:2]) #打印元组前两个元素和列表一样顾头不顾尾
print(tup[-1]) #打印元组最后一个元素
输出
C:\Python35\python.exe D:/linux/python/all_test/listandtup.py
('Alex', 'huige', 1, 'lisa')
Alex
('Alex', 'huige')
lisa
2、元组的组合
tup = ("Alex","huige",1,"lisa")print(tup)
tup1= ("hui","junge",1)
tup2= tup +tup1print(tup2)
输出
C:\Python35\python.exe D:/linux/python/all_test/listandtup.py
('Alex', 'huige', 1, 'lisa')
('Alex', 'huige', 1, 'lisa', 'hui', 'junge', 1)
3、元组的运算符,这点和列表差不多
我们举几个例子
tup = ("Alex","huige",1,"lisa")
tup1= ("hui","junge",1)print("元组元素的个数:%s" %(len(tup)))
tup3= tup + tup1 #元组连接
print(tup3)#元组的迭代
for i intup:print(i)#元组的判断
if 1 intup:print("Yes")else:print("No")
输出
C:\Python35\python.exe D:/linux/python/all_test/listandtup.py
元组元素的个数:4('Alex', 'huige', 1, 'lisa', 'hui', 'junge', 1)
Alex
huige1lisa
Yes
元组的索引和截取,我们就不说了,大概如下图:
元组的内置函数
我们根据上图来做一下操作,如下:
1、cmp()方法语法
cmp(tup1,tup2)
描述:用来比较两个元组元素,比较方法规则如下:
如果比较的元素是同类型的,则比较其值,返回结果。
如果两个元素不是同一种类型,则检查它们是否是数字。
如果是数字,执行必要的数字强制类型转换,然后比较。
如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
否则,通过类型名字的字母顺序进行比较。
如果有一个列表首先到达末尾,则另一个长一点的列表"大"。
如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0。
备注:python3 中已经没有cmp函数了,被operator模块代替
由于这个模块需要导入,我们日后再说
2、len()函数
tup = ("Alex","huige",1)
tup1= ("hui","junge",1)print(len(tup))print(len(tup1))
3、max()函数和min()函数
求元组中最大或者最小的值
举例:
tup = ("Alex","huige""123")
tup1= ("hui","junge",1)print(max(tup)) #最大值
print(min(tup)) #最小值
4、tuple函数
此函数是将列表转为元组,多的不说上例子
alist = ["Alex","huige",1]
atuple=tuple(alist)print(atuple)#也可以将字典转为元组
dict = {"a":"d","b":1}
tup1=tuple(dict)print(tup1) #这里需要注意的是字典转为元组只返回键的值
输出:
C:\Python35\python.exe D:/linux/python/all_test/listandtup.py
('Alex', 'huige', 1)
('a', 'b')
好了,到这里我们元组就说完了,拜拜