列表是 Python 中最重要的数据类型,它应用的频率十分十分的高,最大水平的施展 Python 的灵活性。
和字符串一样,列表的操作方法也有很多。如果说一头钻进去,可能会导致学习没有重点。在这篇文章当中,首先九柄会跟大家介绍列表的根底操作,而后我会跟大家去说一些列表这个数据类型罕用的实战操作。
争取可能对 Python 列表有一个大略的意识。
Python 列表定义
首先咱们来看一下列表的定义。列表通常用来存储多个数据,每一个数据之间用逗号隔开,他们被称为元素,列表的左右两边带有中括号。
a_list = [1, 2, 3, 4]
你能够把列表设想成是某种容器,你能够往这个容器外面塞入任何的货色。并且列表当中的元素能够是任意的数据类型,你能够在一个列表当中同时存储数字、字符串,甚至嵌套列表。
a_list = [1, "hello", ["new", "list"]]
当然,尽管列表能够存储不同的数据类型,然而大多数状况下,外面元素的数据类型是一样的,你能够简略了解他和其余的编程语言当中的数组差不多。
Python 列表的基本操作
列表的基本操作分为:增、删、改、查。
- ”查“次要是去获取列表的某一个元素或者是多个元素,通过索引和切片能够获取。
- ”增“次要是对这个列表当中去增加一个新的元素。
- “删”次要指咱们对列表当中的某元素进行删除。
- “改”次要是这个对这个列表当中的元素去进行批改。
因为列表自身有多个元素,咱们能够获取它的长度
a = [1, 2, 3]
print(len(a)) #3
Python 列表索引
列表的索引的示意基本上和字符串的示意办法差不多,所以你能够间接援用字符串当中的操作,索引从 0 开始
man = [1, 2, 3]
print(man[1]) #2
print(man[0]) #1
索引能够是正数,示意倒数第几个,也就是从列表的左边数到右边。索引为 -1 示意获取倒数第一个元素,索引为 -2 示意获取倒数第二个元素。为什么正序数的索引从 0 开始,倒序就不能从 0 开始呢?因为索引为 0 不能同时示意两个元素,会造成指令的抵触。
print(man[-1]) #3
超出索引范畴报 IndexError 谬误
print(man[8])
Python 列表切片
列表的切片呢也基本上和字符串的切片差不多。所以咱们能够间接用字符串切片的办法。切片的示意办法是:var[start: end]
。start 示意开始地位的索引号,end 示意完结地位的索引号,然而不蕴含 end。
girl = [1,2,3,4,5,6]
part_of_girl = girl[0:1]
print(part_of_girl) # [1]
切片的索引号也能够是正数,然而在应用的时候要确保 end 是在 start 的左边,end – start > 0。
print(girl[0: -2])
print(girl[-2: -4])
切片的索引号超出范围是不会报错的,取到止境为止。
print(girl[0:100000000000])
切片的 start 和 end 都能够省略。
girl[1:]
girl[:-1]
girl[:]
切片能够加第三个参数,girl[start:end:step]
, 其实应用切片时,默认的步长是为 1。
girl[0:3:2]
Python 列表增加元素
列表当中增加一个新的元素,咱们次要应用两种办法。
第一种办法是应用 append 办法在列表的最初面增加一个元素。
a = [1, 2]
a.append(3)
# [1,2,3]
第二种办法是通过 insert 办法在某个索引的地位增加一个新的元素,比照一下和上一种办法的区别。
a = [1, 2]
a.insert(0, 3)
# [3,1,2]
Python 列表去除反复元素
在列表当中删除元素的形式也有两种。
第 1 种是通过 remove 办法移除指定的值。
a = ["a", "b"]
a.remove("a")
# ['b']
第 2 种是通过 Pop 办法,删除指定索引地位的值。
a = ["a", "b"]
a.pop(1)
# ['a']
如果想间接清空这个列表,那么就能够应用 clear 办法。
a.clear()
比拟常见的是,咱们常常要对列表当中的元素去重,能够通过先转化成汇合类型,而后再转回列表类型。
a = [1, 2, 1, 4, 2]
print(list(set(a)))
Python 列表求和
有的时候呢,咱们会在一个列表外面去存储很多的数据,并且要对整个列表当中所有的数据去求和,则能够应用 sum 函数
a = [1, 2, 1, 4, 2]
print(sum(a))
Python 列表排序
列表排序也是应用十分十分多的操作,对整个列表排序之后,可能会简化之后的操作。要实现排序,不肯定非得实现排序算法,在 Python 当中,能够间接调用列表上面的 sort 办法实现排序。
a = [1, 5, 3, 2]
a.sort()
如果想从大到小排序呢,咱们能够再加上一个 reverse 参数。
a.sort(reverse=True)
Python 列表推导式
列表推导式是我倡议每一个 Python 初学者都把握的一个进阶技巧。它可能极大的简化一些列表的简单操作,让我代码变得更加的优雅。列表推导式次要利用的场合,是对列表当中的每一个元素去进行同样的操作,比如说咱们想对一个列表当中的每一个元素都转化成字符串,那么就非常适合应用列表推导式来操作。
a = [1, 5, 3, 2]
b = [str(i) for i in a]
# b = ['1', '5', '3', '2']
总结
列表经常出现在高级 Python 程序员的面试题当中。如果你刚开始学 Python,想找一份 Python 相干的工作,那么在面试过程当中个别都会问到一些对于列表的面试题。
其中一个起因是列表的确用的频率比拟高,第 2 个起因是列表一种可变的数据类型,当对它去进行操作时候,比拟容易呈现 bug,在面试当中,如果说对列表进行考核的话,可能略微看出一个人的代码功底。