python字典,列表(list)与元组(tuple)实例教程大全

发布时间:2019-07-17编辑:脚本学堂
有关python字典、python列表、python元组的实例教程,最全面的python列表、元组、列表用法的例子,需要的朋友参考下。
二,Tuple:元组

和列表类似,元组也是一种有序列表,虽然tuple和list非常之类似,但是list初始化之后使可以改变的,但是,元组一旦初始化之后就不可以改变。比如,同样的列出一组人的姓名:
 

1 >>> tuple1 = ('wuyanl','wangcc','wanggang','dengdacheng')
2 >>> tuple1
3 ('wuyanl', 'wangcc', 'wanggang', 'dengdacheng')
4 >>>
 

现在tuple1这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用tuple1[0],tuple1[-1],但不能赋值成另外的元素。

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
 

1 >>> tuple1[0]
2 'wuyanl'
3 >>> tuple1[-1]
4 'dengdacheng'
5 >>> tuple1[4]
6 Traceback (most recent call last):
7   File "<stdin>", line 1, in <module>
8 IndexError: tuple index out of range
9 >>> #同样越界也是报出一个indexError

tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:


1 >>> #定义一个空的元组
2 ...
3 >>> t = tuple()
4 >>> t
5 ()
6 >>> t = (1,2,3,1)
7 >>> t
8 (1, 2, 3, 1)
9 >>> #定义一个只有一个元素的元组,可以这样定义:
10 ...
11 >>> t1 = (123,)
12 >>> t1
13 (123,)
14 >>> #如果你这样定义你定义的将是123这个元素,而不是一个元组
15 >>>
16 >>> t2 = (123)
17 >>> t2
18 123
19 >>>

定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。

所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

可以"改变"的tuple:


1 >>> tuple2 = ('aa','bb','cc',['a','b','c'],'dd')
2 >>> tuple2
3 ('aa', 'bb', 'cc', ['a', 'b', 'c'], 'dd')
4 >>> tuple2[3][0] = 'XX'
5 >>> tuple2[3][1] = 'YY'
6 >>> tuple2
7 ('aa', 'bb', 'cc', ['XX', 'YY', 'c'], 'dd')
8 >>> #当一个元组中有列表时是可以改变元组的值的,其实实质是改变列表的值

1.创建元组:


1 >>> tuple1 = ('wudashen','langdacheng','wangchengcheng')
2 >>> tuple2 = (1,2,3,4,5,6)
3 >>> tuple3 = "a","b","c","d"
4 >>> tuple1
5 ('wudashen', 'langdacheng', 'wangchengcheng')
6 >>> tuple2
7 (1, 2, 3, 4, 5, 6)
8 >>> tuple3
9 ('a', 'b', 'c', 'd')
10 >>>

创建一个空元组时可以直接创建一个括号,创建一个只有一个元素的元组时,必须在和面添加一个逗号(,):


>>>
>>> tuple4 = ()
>>> tuple4
()
>>> tuple5 = (1,)
>>> tuple5
(1,)
>>>

元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

2.访问元组:

元组可以使用下标索引来访问元组中的值,如下实例:


1 >>> print "tuple1[0]:",tuple1[0]
2 tuple1[0]: wudashen
3 >>> print "tuple1[1:5]",tuple1[1:5]
4 tuple1[1:5] ('langdacheng', 'wangchengcheng')
5 >>> print "tuple2[1:5]",tuple2[1:5]
6 tuple2[1:5] (2, 3, 4, 5)
7 >>>

3.修改元组:

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:


1 >>> t1 = ('wuyanl','luoting','aimeiyu')
2 >>> t2 = (1,2,3,4,5,6,7,8,9,0)
3 >>> t1
4 ('wuyanl', 'luoting', 'aimeiyu')
5 >>> t2
6 (1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
7 >>> t3 = t1 +t2
8 >>> t3
9 ('wuyanl', 'luoting', 'aimeiyu', 1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
10 >>>

4.删除元组:

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:

1 >>> print t1
2 ('wuyanl', 'luoting', 'aimeiyu')
3 >>> del t1
4 >>> t1
5 Traceback (most recent call last):
6   File "<stdin>", line 1, in <module>
7 NameError: name 't1' is not defined
8 >>>

5.元组运算符:

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

6.元组索引,截取:

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

7. 元组的内置函数:

 (1),比较两个元组元素:cmp(tuple1,tuple2)
 

1 >>> tuple1
2 ('wudashen', 'langdacheng', 'wangchengcheng')
3 >>> tuple2
4 (1, 2, 3, 4, 5, 6)
5 >>> cmp(tuple1,tuple2)
6 1
7 >>> #两个元组不相等则返回1
8 ...
9 >>> tt1 = (1,2,3)
10 >>> tt1
11 (1, 2, 3)
12 >>> tt2 = (1,2,3)
13 >>> tt2
14 (1, 2, 3)
15 >>> cmp(tt1,tt2)
16 0
17 >>> #两个元组相等则返回0
18 ...
19 >>>

(2),计算元组的长度:len(tuple1):
 

1 >>> len(tt1)
2 3
3 >>> len(tt2)
4 3
5 >>> len(tuple1)
6 3
7 >>> len(tuple2)
8 6
9 >>>

(3),返回元组中的最大值:max(tuple2),min(tuple2)
 

1 >>>
2 >>> max(tt1)
3 3
4 >>> max(tuple1)
5 'wudashen'
6 >>> max(tuple2)
7 6
8 >>> max(tuple3)
9 'd'
10 >>> min(tt1)
11 1
12 >>> min(tuple3)
13 'a'
14 >>> #返回元组中的最小值

(4),将列表转换成元组:
 

1 >>> list1
2 ['luoting', 'liudehua', 'wyl', 'liming', 'shabie']
3 >>> lt = tuple(list1)
4 >>> lt
5 ('luoting', 'liudehua', 'wyl', 'liming', 'shabie')
6 >>>
 

元组的知识就先介绍到这里,以下详细的来说一下重头戏--字典: