Python-元组

一、元组

元组的定义:其实我自己理解的元组就是不能修改的列表,至于为什么不能修改,应该是防止程序不小心变动重要的数据吧!

元组的创建:

   元组在小括号中添加元素,并使用逗号隔开

例子:

#!/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 <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:\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 <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:\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 <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:\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 + tup1
print(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 in tup:
    print(i)
#元组的判断
if 1 in tup:
    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
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:\Python35\python.exe D:/linux/python/all_test/listandtup.py
('Alex', 'huige', 1)
('a', 'b')

好了,到这里我们元组就说完了,拜拜

 

   

posted @ 2017-01-20 12:37  牛逼点的名字  阅读(844)  评论(0编辑  收藏  举报