列表是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]) #2print(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,在面试当中,如果说对列表进行考核的话,可能略微看出一个人的代码功底。