一、元组
元组的定义:其实我自己理解的元组就是不能修改的列表,至于为什么不能修改,应该是防止程序不小心变动重要的数据吧!
元组的创建:
元组在小括号中添加元素,并使用逗号隔开
例子:
#!/usr/bin/env python tup = ("Alex","huige",1,"lisa") print(tup) 输出: C:Python35python.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 <module> 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:Python35python.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 <module> 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) del list print(list) del tup print(tup) 报错 C:Python35python.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 <module> <class 'list'> 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:Python35python.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 + tup1 print(tup2) 输出 C:Python35python.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 in tup: print(i) #元组的判断 if 1 in tup: print("Yes") else: print("No") 输出 C:Python35python.exe D:/linux/python/all_test/listandtup.py 元组元素的个数:4 ('Alex', 'huige', 1, 'lisa', 'hui', 'junge', 1) Alex huige 1 lisa 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:Python35python.exe D:/linux/python/all_test/listandtup.py ('Alex', 'huige', 1) ('a', 'b')
好了,到这里我们元组就说完了,拜拜