简介:python中基本数据类型就是序列,序列中的每一个元素都有自己的编号也就是索引,而python中含有六种内建序列,分别是字符串、列表、元组、Unicode字符串、buffer对象、xrange对象,其中应用最多的应该是列表和元组,以下将介绍列表和元组的相关操作。
一、列表
列表是可变类型,也就是可以修改列表中的元素,列表定义为[],内部用逗号来分割元素,元素类型不限,可以是字符串、数字也可以内嵌列表、元组或者字典。
list = [] # 创建一个空列表
list1 = ['string', 123, ['abc', 123], (1, 2, 3)]
print(list)
print(list1)
print(type(list))
"""
输出如下:
[]
['string', 123, ['abc', 123], (1, 2, 3)]
<class 'list'>
"""
因为序列都是带有索引的,所以可以通过索引来查询对应的元素。索引从左到右是从0开始,从右到左是从-1开始计算,并可以通过对应的索引替换对应的元素。
list = [] # 创建一个空列表
list1 = ['string', 123, ['abc', 123], (1, 2, 3)]
print(f'从左到右取索引下标从0开始{list1[0]}、{list1[1]}')
print(f'从右到左取索引下标从-1开始{list1[-1]}')
list1[1] = 456
print(f'替换列表索引1的元素之后,列表变为:{list1}')
"""
输出如下:
从左到右取索引下标从0开始string、123
从右到左取索引下标从-1开始(1, 2, 3)
替换列表索引1的元素之后,列表变为:['string', 456, ['abc', 123], (1, 2, 3)]
"""
二、元组
相比与列表的可变类型,元组就是不可变类型,也就是说元组中的元素是不可以更改的,准确的说因该是元组中的元素内存地址不能修改。元组也是用逗号进行分隔元素,也不限制元素类型。元组的操作与列表是相同的,只是不能修改元组元素。
如果尝试修改元组内元素就会报错。
tuple_1 = (1, 2, 'test')
print(tuple_1)
# 尝试修改元组内的元素
tuple_1[0] = 2
print(tuple_1)
"""
输出如下:
(1, 2, 'test')
TypeError: 'tuple' object does not support item assignment
"""
但如果元组内元素是列表,那么列表是可变类型,所以列表内元素是可以修改的,这是因为元组存储的列表本身的内存地址没有变化。
tuple_1 = ([1, 2, 3], 2, 'test')
print(tuple_1)
# 尝试修改元组内的元素
tuple_1[0][0] = 2
print(tuple_1)
"""
输出如下:
([1, 2, 3], 2, 'test')
([2, 2, 3], 2, 'test')
"""
相比与元组,列表这种可变类型应用更加广泛,但是不是任何场景都适合用列表,针对于必须保证序列元素这种保护数据的应用场景,元组会更加安全些,使用时根据对应的应用场景进行判断。
三、序列概览--通用的序列操作
Python中所有的序列类型都可以进行一些通用的操作:
1、索引
通过索引获取对应序列元素或修改对应元素。
2、分片
索引是对序列中单个元素进行访问,分片就是对序列数据的范围访问。通过【:】冒号进行分片访问,该操作在字符串中也有讲。分片访问左闭右包。
3、加
就是讲两个序列合并成一个序列
4、乘
重复序列
5、成员资格判断(in or not in)
判断是否元素在序列中。
6、计算序列长度(len)
使用内建方法len()就可以判断序列的长度
7、找出最大元素(max)
使用内建方法max()可以找出序列中最大的元素
8、找出最小元素(min)
使用内建方法min()可以找出序列中最小的元素
9、迭代 iter
可以通过迭代的方式依次对序列中的每个元素进行访问,后面也会讲一下iter迭代器的用法。