Python3之列表list

列表 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)]

好了,本节就到这吧

猜你喜欢

转载自blog.csdn.net/geek_xiong/article/details/82153899