Python中最基本的数据结构是序列,序列中的每一个元素都有编号,即索引(从左到右第一个索引为0,从右到左第一个索引为-1)。
python提供的序列类型在所有程序设计语言中是最丰富、最灵活,也是功能最强大的。python中支持3种基本序列数据类型:字符串、列表和元组,还支持1种映射数据类型:字典。
下面我们主要介绍两种最常用的序列类型:列表和元组。
列表跟元组的主要区别是,列表可以修改,而元组不可以。
列表的主要形式如,
Edward=['Edward','Gumby','42','70kg']
print(Edward[1])
元组的语法很简单,只需要将一些值用逗号分隔开,就能自动创建一个元组,主要形式如:
>>1,2,3
>>(1,2,3)
>>2, (虽然只有一个值,也必须在其后面加上逗号)
1. 通用的序列操作
(1) 索引
从左到右第一个索引为0,从右到左第一个索引为-1,例如:
>>array=[0,1,2,3,4,5,6,7,8,9]
>>print array[1]
>>print array[1:3]
>>print array[0:-1]
>>print array[2:-13]
>>print array[::3]
>>print array[::-1]
>>print array[::-2]
a. 没有冒号
和其他语言一样访问0∼n−10∼n−1之间的元素,如果参数为负数返回倒数第几个,如
print array[-1]
#返回倒数第一个数9
b. 一个冒号
参数大于零:表示从左向右数的下标
参数小于零:表示从右向左数倒数第几个数(不包括该数)
如:
print array[1:3]
#选择下标为1到3(不包括3)之间的所有元素。即[1,2]
print array[0:-1]
#选择下标为0到倒数第第一个元素(不包括该元素)之间的所有元素,
即[0, 1, 2, 3, 4, 5, 6, 7, 8]
print array[2:-13]
#同上,不过上述的方法找不到交集所以返回的是[]
c. 两个冒号
前两个参数的作用和上面一样,但三个参数是间距 ,也就是步长
大于零:从左向右返回数组
小于零:从右向左返回数组
如:
print array[::3]
#返回[0, 3, 6, 9] 间距为3
print array[::-1]
#反向输出[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 间距为1
print array[::-2]
#反向输出[9, 7, 5, 3, 1] 间距为2
(2)乘法
将序列与数x相乘时,将重复这个序列x次来创建一个新序列,如,
>>'python'*5
pythonpythonpythonpythonpython
(3)内置函数(最大值、最小值、长度)
len返回序列包含的元素个数,max和min返回最大值和最小值。
2. 列表的基本操作
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])对原列表进行排序 |
10 | list.clear()清空列表 |
11 | list.copy()复制列表 |
3. 元组
Python元组包含了以下内置函数
序号 | 方法及描述 |
---|---|
1 | cmp(tuple1, tuple2)比较两个元组元素。 |
2 | len(tuple)计算元组元素个数。 |
3 | max(tuple)返回元组中元素最大值。 |
4 | min(tuple)返回元组中元素最小值。 |
5 | tuple(seq)将列表转换为元组。 |