Python 学习笔记 – 列表操作

一、列表简介

 

1.1 列表是怎么样?

 

列表由一文山会海特定 顺序排列  的 元素 组成。列表类似于C语言的数组,但是比数组高级,列表中的类型没有限制。可以分包各样类型。

 

例如:

>>> list = [1,'hello']
>>> list
[1, 'hello']

 

1.2 访问列表元素

 

列表是一个一成不变的数据集合。访问时只需指出列表的称呼,然后将某个要访问元素的岗位或索引告诉
Python 即可。

 

例如:

 

>>> list[0]
1

留意列表元素的目录时从 0 先导的而不是 1 最先(这点倒是和C语言数组类似)

 

1.3 列表的增删改

 

修改:

>>> list[0] = 300
>>> list[0]
300

 

增加:

在列表末尾添泰铢素 append()

>>> list.append("world")
>>> list
[300, 'hello', 'world']

 

在列表中插入元素

>>> list.insert(0,'Just insert')
>>> list
['Just insert', 300, 'hello', 'world']

 

删除:

1.使用 del 语句删除元素,使用 del
可以去除任何岗位的列表元素,条件是精晓其索引。

 

>>> del list[1]
>>> list
['Just insert', 'hello', 'world']

 

2.施用 pop() 方法 删除元素,pop()可去除列表末尾的因素,并让您可知接着使用它(就是可以将去除的列表元素交给另外一个变量)。

 

>>> pop_list = list.pop()
>>> list
['Just insert', 'hello']
>>> pop_list
'world'

 

3.应用pop() 来删除列表中任何职务的元素。

 

>>> list.pop(0)
'Just insert'
>>> list
['hello']

 

4.基于值来删除元素。假若您只理解要去除的因素的值,你能够应用办法
remove() 来促成您的去除元素效率。

 

>>> list.remove('hello')
>>> list
[]
>>>

 

1.4 社团列表/列表的排序

 

1.利用格局 sort() 对列表举行永久性排序

>>> cars = ['bmw', 'audi' ,'toyota' , 'subaru']
>>> cars
['bmw', 'audi', 'toyota', 'subaru']
>>> cars.sort()
>>> print(cars)
['audi', 'bmw', 'subaru', 'toyota']

 

如上所示,sort() 默认是遵照字符顺序排序的。虽然要倒序排列,可加参数
reverse = True

 

>>> cars = ['bmw','audi','toyota','subaru']
>>> cars
['bmw', 'audi', 'toyota', 'subaru']
>>> cars.sort(reverse = True)
>>> cars
['toyota', 'subaru', 'bmw', 'audi']

 

2.用到函数 sorted() 对列表举行临时排序

 

假定你想保留原有的列表排列顺序,不过又想按部就班某种顺序突显它们,你可以选择sorted()。

 

>>> cars = ['bmw','audi','toyota','subaru']
>>> cars
['bmw', 'audi', 'toyota', 'subaru']
>>> sorted(cars)
['audi', 'bmw', 'subaru', 'toyota']

C语言, 

一致倘若要倒序加参数 reverse = True 即可。

 

3.倒着打印列表(没有排序,只是调整前后输出,反转列表元素,此输出会永久修改列表顺序)

>>> cars
['bmw', 'audi', 'toyota', 'subaru']
>>> cars.reverse()
>>> print(cars)
['subaru', 'toyota', 'audi', 'bmw']

 

4.得到列表的长短 len()

 

>>> cars
['subaru', 'toyota', 'audi', 'bmw']
>>> len(cars)
4

 

1.5 列表访问的谬误

 

1.列表造访时只顾列表索引是从 0 开端的,不要跨越可访问的目录上限。

 

2.列表访问最终一个因素得以利用索引 -1
,不过要小心列表一定不可能是空的,否则报错。

 

 

二、操作列表

 

2.1.遍历整个列表

 

只要你想对列表中的元素举行某个相同或者不同的操作,你就可能会用到循环。这里先介绍for循环:

 

>>> magicians = ['alice', 'david', 'carolina']
>>> for magician in magicians:
         print(magician)

alice
david
carolina

 

注:python是分别轻重缓急写的,所以重要字 for 和 in 必须保证小写。

 

巡回是统计机自动完成重复工作的周边模式之一。例如上述 for
循环示例,首先会将列表 magicians 中的第一个因素赋给变量
magician,然后实施打印操作,将magician的值打印出来。紧接着会连续将第二个因素一直到最后一个要素将
magicians 所有因素全体相继赋值给变量 magician 然后打印出来。

 

PS:这里变量的命名使用单数和复数情势是一个没错的习惯。

 

留神:Python是一个利用缩进来判断代码行关系的,所以编写时必定要留心行与行之间的缩进关系。缩进让代码更易读,它要求您使用缩进让代码整洁而构造清晰。

 

2.2.创办数值列表

 

2.2.1.使用 range() 函数

 

>>> for value in range(1, 5):
         print(value)

1
2
3
4

 

行使 range()可以轻松拿到指定范围的整型(Integer)数字,不过范围并不分包第二参数值。如上所示,range(1,
5) 只会取 1~4 之间的多少,要想打印出 5 ,就非得是 range(1, 6)

 

2.2.2.如何选取 range() 函数创建列表:

 

>>> numbers = list(range(1, 6))
>>> print(numbers)
[1, 2, 3, 4, 5]

 

如上所示,要使用 range() 函数来创设列表,用 list() 即可。

 

range() 函数在行使时还足以增长步长

 

>>> numbers = list(range(1, 6, 2))
>>> print(numbers)
[1, 3, 5]

 

2.2.3.对此数字类型的列表我们使用如下函数来找其中的最大值,最小值和总数:

 

>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> max(digits)
9
>>> min(digits)
0
>>> sum(digits)
45

 

2.2.4.列表解析

 

列表解析将 for 循环和开创元素的代码合并一行,并机关叠加新元素。

 

>>> squares = [value ** 2 for value in range(1, 11)]
>>> print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 

注:“**2”表示平方值,“**3”表示立方值。

 

2.3.列表切开

 

只利用列表部分因素的法门。Python 称之为 切片

 

要开创切片,可指定要运用的首先个要素和终极一个要素的目录(列表的目录是从0最先的)。与函数
range() 一样。Python
在到达你指定的第二个要素前边的要素后终止。假如你要出口列表前六个元素,你就必须指定索引
0~3,那将出口分别为 0 、1、2 的因素。

 

>>> squares = [value ** 3 for value in range(1, 11)]
>>> print(squares[0:3])
[1, 8, 27]

 

切开的首先个参数默认是列表起头的目录,第二个参数默认是列表结尾的目录。第一个参数可以给负数(首个参数给负值后,第二个参数只好为空)
,表示从最后先河取负数相对值个元素。第二参数也足以给负数(第一个参数小于必须列表最大索引值减去从列表最后几个第二个参数相对值处索引值),表示取从第一个参数索引起首到结尾处倒数第负数相对值索引范围内的要素。

>>> print(squares[:])
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> print(squares[-3:])
[512, 729, 1000]
>>> print(squares[:-3])
[1, 8, 27, 64, 125, 216, 343]
>>> print(squares[-3:5])
[]
>>> print(squares[-3:3])
[]
>>> print(squares[-3:1])
[]
>>> print(squares[-3:0])
[]
>>> print(squares[-3:])
[512, 729, 1000]
>>> print(squares[-3:-3])
[]
>>> print(squares[1:-3])
[8, 27, 64, 125, 216, 343]
>>> print(squares[10:-3])
[]
>>> print(squares[len(squares) - abs(-3) - 1:-3])
[343]
>>> print(squares[len(squares) - abs(-3):-3])
[]

 

运用切片复制列表,假设您想利用已部分列表元素重新新建一个列表就必须用到切片。普通的赋值是卓殊的,普通的赋值只是将最近列表的列表地址赋给了增产的列表,并未新增一个有所独立内存地址的列表。

 

>>> numbers = squares
>>> print(numbers)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> squares.append(0)
>>> print(numbers)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 0]
>>> print(squares)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 0]
>>> numbers = squares[:]
>>> numbers.append(101)
>>> print(numbers)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 0, 101]
>>> print(squares)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 0]0

 

2.4.元组

 

列表万分适合用于存储在程序运行期间可能转变的数码集。列表是能够修改的,那对处理网站的用户列表或嬉戏中的角色列表至关首要。可是,有时候你需要创立一系列不可修改的因素,元祖可以满足这种需要。Python
将不可能改改的值称为 不可变的,而不可变的列表 被称为 元组

 

2.4.1.定义元组

 

元组看起来似乎列表,但采纳的是 圆括号 而不是
方括号来标识。定义元组后,就足以使用索引来访问其元素,就像访问列表元素一样。

 

>>> tuple = (200, 50)
>>> print(tuple[1])
50
>>> tuple[1] = 60
Traceback (most recent call last):
  File "<pyshell#102>", line 1, in <module>
    tuple[1] = 60
TypeError: 'tuple' object does not support item assignment

 

2.4.2.元组的遍历

 

元组的遍历和列表一样也得以应用for。

 

>>> numbers = (200, 50)
>>> for number in numbers:
         print(number)
200
50

 

2.4.3.元组的改动

 

元组的要素尽管无法改改,可是我们得以经过改动元组变量来贯彻元组的修改。

 

>>> numbers = (200, 50)
>>> print(numbers)
(200, 50)
>>> numbers = (200, 60)
>>> print(numbers)
(200, 60)