列表 list
我们先考虑一个问题:如何将计算机保存的数据临时保存在一个地方,可以方便我们对数据的操作,如增删改查(不是数据库)
我们需要一个容器,其中一个容器就是列表。
列表的定义:
- 列表是一种容器
- 列表是一种可变的序列
- 列表是由一系列特定元素组成的,元素与元素之间可能没有任何的关联关系,但他们之间有先后顺序关系
列表里同时可以存放任意数据类型的元素
举个栗子:
L= [] # 创建空列表
>>> L = [1, 'a', 3.14, True, [1, 2, 3], {'name': 'zs'}, (1, 2)]
>>> L
[1, 'a', 3.14, True, [1, 2, 3], {'name': 'zs'}, (1, 2)]
列表的构造函数:
- list() 用于生成一个空的列表,等同于[ ]
- list(iterable) 用于可迭代对象创建一个列表
举个栗子:
L = list() # 等同于 L = []
L = list('hello') # L = ['h', 'e', 'l', 'l', 'o']
L = list(range(5)) # L = [0, 1, 2, 3, 4]
列表的运算:
算数运算(运算规则与字符串的规则是一样的)
+、+=、* 、*=
简单举个栗子:
>>> a = [1,2,3]
>>> b = [1,2,4,5]
>>> c = a+b
>>> c
[1, 2, 3, 1, 2, 4, 5]
>>> a += b
>>> a
[1, 2, 3, 1, 2, 4, 5]
>>> d = b * 2
>>> d
[1, 2, 4, 5, 1, 2, 4, 5]
>>> b *= 3
>>> b
[1, 2, 4, 5, 1, 2, 4, 5, 1, 2, 4, 5]
针对 ‘+=’ 列表vs字符串:
>>> b = [1,2,4,5]
>>> c = 'ABCD'
>>> id(b)
43065672
>>> b+=[1,2,3]
>>> id(b)
43065672
>>> id(c)
48404440
>>> c+='asd'
>>> id(c)
43969088
由以上代码的id地址判断得知,列表是可变的,+=运算不会改变列表的id地址,是在原列表的基础上增加数据,而字符串是不可变的,+=运算是重新生成一个新的字符串。
比较运算
<、<=、>、>=、==、!=
>>> a = [1,2,3]
>>> b = [1,2,4]
>>> a > b
False
>>> a < b
True
- in和not in运算
>>> a = [1, 2, 3]
>>> 2 in a
True
>>> 2 not in a
False
列表的索引操作与索引赋值:
操作:
x = [1, 'two', 3, '四']
x[1] # 'two'
x[-1] # '四'
赋值:
x = [1, 2, 3, 4]
x[2] = 3.14 # 改变了第三个元素的值为3.14,此时的列表为[1,2,3.14,4]
del 删除:
例如:删除索引为2的数据
>>> x = [1, 2, 3, 4]
>>> del x[2]
>>> x
[1, 2, 4]
列表推导式:
什么是列表推导式:是用可迭代对象创建列表的一种表达式
作用:
用简易方法生成列表
语法:
[表达式 for 变量 in 可迭代对象]
或
[表达式 for 变量 in 可迭代对象 if 真值表示]
简单的举几个栗子:
# 生成一个数值为1-9的平方的列表
# [1,4,9,16,25,...,91]
答案:L = [i**2 for i in range(1,10)]
用列表推导式生成1-100以内的奇数的列表:
结果是:[1,3,5...,99]
答案:L = [i for i in range(1,100) if i % 2 == 1 ]或
L = [i for i in range(1,100,2)]
好了,本节就到这吧