序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表(List)
列表叫做:list,list是以中括号来命名的,列表的数据项不需要具有相同的类型,例如:
a_list = [12, 3, 67, 7, 82]
>>>
列表的索引
a = [1,2,3,4,1,1,-1]
print(a[0]) # 显示列表a的第0位的值
# 1
print(a[-1]) # 显示列表a的最末位的值
# -1
print(a[0:3]) # 显示列表a的从第0位 到 第2位(第3位之前) 的所有项的值
# [1, 2, 3]
print(a[5:]) # 显示列表a的第5位及以后的所有项的值
# [1, -1]
print(a[-3:]) # 显示列表a的倒数第3位及以后的所有项的值
# [1, 1, -1]
列表的改变
我们可以给列表元素赋值:
>>> x =[1,2,3,4]
>>> x[2]=18
>>> x
[1, 2, 18, 4]
列表的添加
列表是一系列有序的数列,有一系列自带的功能。
append方法:
a = [1,2,3,4,1,1,-1]
a.append(0) # 在a的最后面追加一个0
print(a)
# [1, 2, 3, 4, 1, 1, -1, 0]
insert方法:
a = [1,2,3,4,1,1,-1]
a.insert(1,0) # 在位置1处添加0
print(a)
# [1, 0, 2, 3, 4, 1, 1, -1]
列表的删除
我们一般使用del 语句去删除列表元素:
>>> names = ['zhangsan','lisi','wangwu','sunliu']
>>> del names[2]
>>> names
['zhangsan', 'lisi', 'sunliu']
也可以使用remove方法去移除列表的某一个元素:
a = [1,2,3,4,1,1,-1,2]
a.remove(2) # 删除列表中第一个出现的值为2的项
print(a)
# [1, 3, 4, 1, 1, -1,2]
注意:这里移除的是第一个出现的值为2的元素
列表的其他方法与函数
列表的其他函数:
列表的其他方法:
1、count
count方法统计某个元素在列表中出现的次数:
>>> ['to','be','or','not','to','be',].count('to')
2
>>> x = [[1,2],1,1,[2,1,[1,2]]]
>>> x.count(1)
2
>>> x.count([1,2])
1
2、extend
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表):
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
3、index
index 方法用于从列表中找出某个值第一个匹配项的。
>>> knights = ['We','are','the','kninghts','who','say','ni']
>>> knights.index('who')
4
>>> knights[4]
'who'
4、pop
pop 方法会移除列表中一个元素(默认是最后一个),并且返回该元素的值:
>>> x = [1,2,3]
>>> x.pop()
3
>>> x
[1, 2]
>>> x.pop(0)
1
>>> x
[2]
5、reverse
revers方法将列表中的元素反向存放
>>> x = [1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]
6、sort
sort方法用于在原位置对列表进行排序。在“原位置排序”改变原来的列表,从而让其中的元素能按一定的顺序排列。
>>> x = [4,6,2,1,7,9]
>>> x.sort()
>>> x
[1, 2, 4, 6, 7, 9]
元组(Tuple)
元组叫做 tuple,用小括号、或者无括号来表述,是一连串有顺序的数字。
例如:
>>> a_tuple = (12, 3, 5, 15 , 6)
>>> another_tuple = 12, 3, 5, 15 , 6
>>>
元组(Tuple)
元组叫做 tuple,用小括号、或者无括号来表述。元组与列表一样,也是一种序列。唯一的不同是元组不能改变。
例如:
>>> tuple = () #这是创造的一个空元组
>>> a_tuple = (12, 3, 5, 15 , 6)
>>> another_tuple = 12, 3, 5, 15 , 6
>>>
元组中只包含一个元素时,也需要在元素后面添加逗号:
>>> 42,
(42,)
>>> (42,)
(42,)
>>> 3 * (20+1)
63
>>> 3 * (20+1,)
(21, 21, 21)
tuple 函数
以一个序列作为参数并把它转换为元组:
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple('abc')
('a', 'b', 'c')
>>> tuple((1,2,3))
(1, 2, 3)
元组的其他内置函数
同样,元组的删除也可以使用del语句(不能删除元素,只能删除整个元组)。
元组的其他内置函数:
字典(dictionary)
字典是另一种可变容器模型,且可存储任意类型对象。字典是由键值对组成的。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
注意:键必须是唯一的,但值则不必,也就是说一个键可以对于两个值,但是一个值不可以对应两个键。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
创建字典
如果说List是有顺序地输出输入的话,那么字典的存档形式则是无需顺序的, 我们来看一个例子:
在字典中,有key和 value两种元素,每一个key对应一个value, key是名字, value是内容。数字和字符串都可以当做key或者value, 在同一个字典中, 并不需要所有的key或value有相同的形式。 这样说, List 可以说是一种key为有序数列的字典。
a_list = [1,2,3,4,5,6,7,8]
d1 = {'apple':1, 'pear':2, 'orange':3}
d2 = {1:'a', 2:'b', 3:'c'}
d3 = {1:'a', 'b':2, 'c':3}
print(d1['apple']) # 1
print(a_list[0]) # 1
del d1['pear']
print(d1) # {'orange': 3, 'apple': 1}
d1['b'] = 20
print(d1) # {'orange': 3, 'b': 20, 'pear': 2, 'apple': 1}
字典存储类型
以上的例子可以对列表中的元素进行增减。在打印出整个列表时,可以发现各个元素并没有按规律打印出来,进一步验证了字典是一个无序的容器。
def func():
return 0
d4 = {'apple':[1,2,3], 'pear':{1:3, 3:'a'}, 'orange':func}
print(d4['pear'][3]) # a
字典还可以以更多样的形式出现,例如字典的元素可以是一个List,或者再是一个列表,再或者是一个function。索引需要的项目时,只需要正确指定对应的key就可以了。
字典的修改
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8 # 更新 Age
dict['School'] = "希望星选" # 添加信息
print ("dict['Age']: ", dict['Age'])
dict['Age']: 8
print ("dict['School']: ", dict['School'])
dict['School']: 希望星选
字典内置函数与方法
Python字典包含了以下内置函数:
Python字典包含了以下内置方法: