Python列表基础操作汇总
1. 序列(sequence)
1.1 基本概念
序列是 Python语言 中最基本的一种数据结构。数据结构是指计算机中数据存储的方式,序列用于 保存一组有序的数据 。所有的数据在序列当中都有一个 唯一的位置(索引) ,并且序列中的数据会按照添加的顺序来分配索引。
Python语言 有6个序列的内置类型,但最常见的是 列表 和 元组 。
序列 都可以进行的操作包括 索引,切片,加,乘,检查成员。
此外,Python语言 已经内置确定序列的长度以及确定最大和最小的元素的方法。
1.2 序列的分类
可变序列(序列中的元素可以改变):例如 列表(list)、字典(dict) …
不可变序列(序列中的元素不能改变):例如 字符串(str)、元组(tuple)…
2. 列表(list)
列表 是最常用的 Python语言 的数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表 的数据项 不需要 具有相同的类型。
列表 是 Python语言 中的一个 对象 。
列表的作用:
1)列表中可以保存多个有序的数据;
2)列表是用来存储 对象的对象。
2.1 列表的使用
列表的创建:
通过 xxx = [ ] 来创建一个空列表。
参考案例:
list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];
2.2 切片(实操、面试 必备的基础技能)
切片是指从现有列表中获得一个子列表。
通过切片来获取指定的元素。
语法: 列表名[起始索引 :结束索引 :步长]
Python的列表截取切片与字符串操作类型,如下所示:
L=['Google', 'Runoob', 'Taobao']
Python的列表操作:
具体代码:
>>>L=['Google', 'Runoob', 'Taobao']
>>> L[2]
'Taobao'
>>> L[-2]
'Runoob'
>>> L[1:]
['Runoob', 'Taobao']
>>>
列表还支持拼接操作:
>>>squares = [1, 4, 9, 16, 25]
>>> squares += [36, 49, 64, 81, 100]
>>> squares
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
我们看一个稍微复杂点的参考案例:
hero = ['蜘蛛侠','钢铁侠','绿巨人','黑寡妇','美国队长','蚁人']
# 做切片操作时,每次获取的都是初始列表,不是切过后的列表,不会影响原始列表
# 起始位置和结束位置的索引可以不写
print(hero)
# ['蜘蛛侠', '钢铁侠', '绿巨人', '黑寡妇', '美国队长', '蚁人']
# 切片时指定起始位置和结束位置的索引后获取的结果
print(hero[1:3])
# ['钢铁侠', '绿巨人']
# 如果省略结束位置,则会从当前位置开始一直截取到最后;
print(hero[1:])
# ['钢铁侠', '绿巨人', '黑寡妇', '美国队长', '蚁人']
# 如果省略开始位置,则会从第一个元素开始截取到结束位置的元素,但不包含结束位置的元素;
print(hero[:3])
# ['蜘蛛侠', '钢铁侠', '绿巨人']
# 如果省略开始和结束的位置,则会从第一个元素截取到最后一个元素
print(hero[:])
# ['蜘蛛侠', '钢铁侠', '绿巨人', '黑寡妇', '美国队长', '蚁人']
# 步长:表示每次获取元素的间隔 默认为1 可以省略
print(hero[::2])
# ['蜘蛛侠', '绿巨人', '美国队长']
# 步长不能为 0
print(hero[::0])
# ValueError: slice step cannot be zero
# 步长可以为负数,
print(hero[::-1])
# ['蚁人', '美国队长', '黑寡妇', '绿巨人', '钢铁侠', '蜘蛛侠']
通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素;
起始位置 和 结束位置 的索引可以不写;
如果省略结束位置,则会 从当前的位置开始 一直截取到最后;
如果省略开始位置,则会从第一个元素截取到结束的元素,但是不包括结束的元素;
如果开始位置和结束位置都省略, 则会从第一个元素开始截取到最后一个元素。
步长 表示每次获取元素的间隔,默认是1(可以省略不写);
步长 不能是0,但可以是是 负数(从后向前的获取列表中的元素)。
3. 通用操作
+ 和 *
+ 可以将 两个列表 拼接成 一个列表;
* 可以将 列表内的元素重复指定的次数 (注意:2个列表不能够做乘法,要和整数做乘法运算。)
# + 表示 可以将两个列表拼接成一个列表
lst = [1,2,3] + [4,5,6]
print(lst)
# [1, 2, 3, 4, 5, 6]
# * 表示将列表中的元素指定重复次数
lst = [1,2,3] * 2
print(lst)
# [1, 2, 3, 1, 2, 3]
# 列表和列表不能相乘
lst = [1,2,3] * [4,5,6]
print(lst)
# TypeError: can't multiply sequence by non-int of type 'list'
in 和 not in
in 用来检查指定元素是否在列表当中;
not in 用来检查指定元素是否不在列表当中。
hero