列表(list)用来有序存放一组相关数据,以便进行统一的处理。Python中,将一组数据放在一对方括号“[]”中即定义了一个列表,其中每个数据称作元素,元素和元素之间同逗号作为间隔,元素的个数被称为数组的长度。
例:
num = [1,2,3,4,5,6]
name = ["小黄","小刘","小王","小李","小张","小吴"]
mixone = [1,"小黄"]
mixtwo = [[1,"小黄"],[2,"小刘"]]
如上所示,在列表中可以保存全为数值、全为字符串或二者混合的元素,同时也允许列表充当元素。
列表中每个元素都对应一个位置编号,这个位置编号称为元素的索引,列表就是通过索引来访问元素的,其语法格式为:
列表名[索引]
索引编号是从0开始,向右依次加1,其访问方式和字符串相似,支持正向和反向两种索引方式。和字符串相似,列表也提供区间访问方式,采用[头下标:尾下标:步长]的方式,这种访问方式称为“切片”。
字符串的索引与切片
在上述代码中“list”用于将字符串转换成列表。
列表元素有序存放,并且可变。支持修改、添加和删除操作。
列表元素的修改只需要将新值赋给对应的索引元素,其格式如下:
列表名[索引]=新值
元素的增加方式主要有两种,append()方法和insert()方法。
append()方法:
append()方法用于在指定的列表尾部即最后一个元素的后面增加指定的新元素,其语法格式如下:
列表.append(新元素)
insert()方法:
insert()方法将指定的元素插入到列表中指定的位置,其位置用索引表示,语法格式如下:
列表.insert(索引,新元素)
元素的删除主要有三种,del命令、pop()方法、remove()方法。
del命令:
del命令是python内置的命令,用来删除指定的列表元素,语法格式如下:
del 列表[索引]
pop()方法:
pop()方法通过指定索引删除列表中对应的元素,其语法格式如下:
列表.pop(索引)
remove()方法:
和del命令、pop()方法不同的是,remove()方法不是根据索引删除元素,而是直接指定待删除元素的值,若列表中存在两个相同值的元素时,remove()方法会删除索引值较小的那个元素,语法格式如下:
列表.remove(元素值)
除了对列表元素进行修改、增加、删除外,还有其他常见的四种列表元素操作方法:len()函数、运算符in和not in、index()方法、count()方法。
len()函数:
len()函数用来统计和返回指定列表的长度,其语法格式如下:
len(列表)
运算符in和not in:
运算符in和not in用来判断指定的元素是否存在于列表中,使用in时存在返回True,不存在返回False,not in则与之相反。其语法格式如下:
元素 in 列表
元素 not in 列表
index()方法:
index()方法用于查找元素在列表中的位置,若该元素在列表中存在,则返回其索引,存在多个则返回最小的索引值,不存在则直接报错,其语法格式如下:
列表.index(元素)
count()方法:
count()方法用来统计并返回列表中指定元素的个数,其语法格式如下:
列表.count(元素)
列表的操作主要是指针对整个列表或部分列表进行处理。
列表的遍历主要是指从头到尾对列表元素进行访问,常见的遍历方式有两种,range()函数和直接遍历。
range()函数:
range()函数主要和for循环一起使用配合索引号依次访问列表元素,其语法格式如下:
for i in range(n):
列表[i]
直接遍历:
直接遍历是指直接利用for循环形式依次访问列表中的每个元素,其语法格式如下:
for 元素 in 列表
对列表中的元素进行排序主要有两种方式:sort()方法和sorted()函数。
sort()方法:
sort()方法对列表元素按照从小到大或从大到小的方式进行升序和降序排序,改变列表中元素的位置,默认为升序,其语法格式如下:
列表.sort()
可以在括号中加入reverse = True/False,若为True表示降序,False表示升序。
sorted()函数
sorted()函数对列表元素按照从小到大或从大到小的方式进行升序和降序排序,不改变列表中元素的位置,只生成排序之后的副本,默认为升序,其语法格式如下:
sorted(列表)
可以在括号中加入reverse = True/False,若为True表示降序,False表示升序。
排序时主要基于元素的ord()函数得到的编码值来进行,因此当元素统一为数字和英文字符排序时结果更加明晰。
列表的切片和前面介绍的字符串的切片方式一样直接指定起始索引和终止索引以及步长来提取切片,语法格式如下:
列表[起始索引:终止索引:步长]
注意事项如下:
列表的扩充主要是指为列表增加新的列表,主要方法有三种:“+”运算、“*”运算以及extend()方法。
“+”运算:
“+”运算主要用于将两个列表连接起来,但是原始参与连接的两个列表并未发生任何变化,其语法格式如下:
列表1+列表2
“*”运算:
“*”运算主要用于将列表中的原始重复多遍,和“+”运算一样,其结果不过不使用赋值语句赋给具体的列表,则不会被保存,其语法格式如下:
列表*n
extend()方法:
extend()方法直接将新的列表添加到某个列表后面,原列表发生改变,其语法格式如下:
列表.extend(新列表)
对列表进行复制主要有三种方法来实现:切片、copy方法以及赋值方法。
切片方法:
切片方法主要是指在切片时同时缺省起始索引和终止索引,然后赋给新的列表,得到的新列表与原始列表一模一样。
列表1=列表2[:]
copy方法:
copy方法会通过复制的方式将原始列表中的元素赋给新的列表,它是深拷贝,新生成的列表是完全独立于原始列表的,其语法格式如下:
列表1=列表2.copy()
赋值方法:
列表之间的赋值是一种浅拷贝,仅仅是让原始列表多了一个新的名字,新列表和原始列表共用原始列表内容,当原始列表发生改变时,新列表也会发生相同的改变,语法格式如下:
列表1=列表2
列表的删除是指将整个列表包括其结构全部进行删除,其语法格式如下:
del 列表名
Python程序设计基础:列表与元组(二)