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一旦定义后就不可变了,为什么这里又可以改变了?
图解如下:
当我们把list的元素'A'和'B'修改为'X'和'Y'后,tuple变为:
通过图解看出:其实变的不是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):将列表转换为元组。