python学习笔记:list和tuple

2017-05-08  本文已影响0人  Stefanie0503

2017.05.08


参考资料:

廖雪峰的官方网站

脚本之家


List列表

list是一种有序的集合,可以随时添加和删除其中的元素。索引

1、创建列表

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

classmates = ['Michael', 'Bob', 'Tracy']

注意:list元素也可以是另一个list,比如:

 s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4

2、访问列表

使用索引来访问list中每一个位置的元素

>>> classmates[2]
'Tracy'

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:

>>> classmates[-1]
'Tracy'

3、修改列表元素

3.1 增加元素:append

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

3.2修改元素:insert

>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

3.3删除某个元素

删除末尾位置元素

 classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
>>>

删除指定位置的元素,pop(i)

 classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']

要把某个元素替换成别的元素,可以直接赋值给对应的索引位置

>>> classmates[1]='stefanie'
>>> classmates
['Michael', 'stefanie', 'Tracy']

4、Python列表操作的函数和方法

列表操作包含以下函数:

1、cmp(list1, list2):比较两个列表的元素

2、len(list):列表元素个数

3、max(list):返回列表元素最大值

4、min(list):返回列表元素最小值

5、list(seq):将元组转换为列表
列表操作包含以下方法:

1、list.append(obj):在列表末尾添加新的对象

2、list.count(obj):统计某个元素在列表中出现的次数

3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置

5、list.insert(index, obj):将对象插入列表

6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

7、list.remove(obj):移除列表中某个值的第一个匹配项

8、list.reverse():反向列表中元素

9、list.sort([func]):对原列表进行排序

Tuple元组

元组类似于一种有序列表,初始化后,列表中的元素不能修改。它也没有append()、insert()这样的方法。因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。 元组与字符串类似,下标索引从0开始,可以进行截取,组合等 。

1、创建元组

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

1.1创建元组

numbers = (1,2,3,4,5)
classmates = ('A','B','C')

1.2创建空元组

tup = ()

1.3创建只带有一个元素的元组

==必须加一个逗号以消除歧义,否则会被误解成数学计算意义上的括号.==

tup=()
>>> tup
()
>>> tup1=(1)
>>>
>>> tup1
1
>>> tup2=(1,)
>>> tup2
(1,)

2、元组连接

>>>numbers+classmates

3、删除元组:

del 元组名

4、“可变的”tuple:

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

发现:这个tuple定义的时候有3个元素,分别是'a','b'和一个list。但是tuple一旦定义后就不可变了,为什么这里又可以改变了?

图解如下:

t

当我们把list的元素'A'和'B'修改为'X'和'Y'后,tuple变为:


image

通过图解看出:其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list。
所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

4、元组内置函数

Python元组包含了以下内置函数

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

2、len(tuple):计算元组元素个数。

3、max(tuple):返回元组中元素最大值。

4、min(tuple):返回元组中元素最小值。
5、tuple(seq):将列表转换为元组。

上一篇下一篇

猜你喜欢

热点阅读