Featured image of post python——列表

python——列表

python列表

列表

1 定义

用于存储任意数目任意类型的数据集合        
List 列表 Python 内置的一种数据类型
标准语法格式 
1. a = [10,20,30,40]
2. a = [10,20,abc,True]

是一种有序的集合,可以随时增加或删除其中的元素。标识是中括号[ ]。

2 创建

2.1 基本语法创建

a=[10,20,'yangyaqi','石家庄学院',True]
a

[10, 20, ‘yangyaqi’,‘石家庄学院’,True]

a=[]

[]

2.2 list()函数创建列表

使用list()可以将任何可迭代的数据转化成列表。

在使用 list() 函数创建列表时,一定要注意双括号。

在Python中,我们可以使用 list() 函数将字符串、元组、字典和集合等其他类似对象转换为列表

b=list() #创建空列表
b=list(range(10))
b

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

this_list = list(('apple', 'banana', 'cherry'))
this_list

[‘apple’, ‘banana’, ‘cherry’]

this_list=list('apple')
this_list

[‘a’, ‘p’, ‘p’, ’l’, ’e’]

3 常用方法

方法要点描述
list.append(x)增加元素将元素x增加到列表list尾部
list.extend(aList)增加元素将列表alist所有元素加到列表list尾部
list.insert(index,x)增加元素在列表list指定位置index处插入元素x
list.remove(x)删除元素在列表list中删除首次出现的指定元素x
list.pop(lindex])删除元素删除并返回列表list指定为止index处的元素,默认是最后一个元素
list.clear()删除所有元素删除列表所有元素,并不是删除列表对象
list.index(x)访问元素返回第一个x的索引位置,若不存在x元素抛出异常
list.count(x)计数返回指定元素x在列表list中出现的次数
len(list)列表长度返回列表中包含元素的个数
list.reverse()翻转列表所有元素原地翻转
list.sort()排序所有元素原地排序
list.copy()浅拷贝返回列表对象的浅拷贝

4 操作

4.1 元素层面

4.1.1 元素的提取

  1. 偏移量: 列表的偏移量从0开始 列表名后带偏移量的中括号,对应相应位置的元素

  2. 通过偏移量对列表进行定位

  3. 在嵌套的列表中也是如此列表

4.1.2 元素的修改

使用赋值语句修改

4.1.3 元素的增加

+运算符操作

并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次复制到新的列表对象中。这样,会涉及大量的复制操作,对于操作大量元素不建议使用。

append.函数

原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用。

extend()方法

将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。

insert()插入元素

使用insert()方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动。

extend()方法

将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。

功能:括号里放一个元素,可将该元素添加到列表末尾
格式为:列表名append0

4.1.4 元素的删除

del方法

a=[100,200,888,300,400]
del a[1]
a

[100, 888, 300, 400]

pop方法

删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。

a=[10,20,30,40,50]
a.pop()
a

[10, 20, 30, 40]

remove()方法

删除首次出现的指定元素,若不存在该元素抛出异常。

a = [10,20,30,40,50,20,30,20,30]
a.remove(20)  #这里的20是数据,不是索引
a

[10, 30, 40, 50, 20, 30, 20, 30]

功能:删除列表元素
格式为: del 列表名偏移量

4.2 列表层面

4.2.1 列表的切片

从列表中提取一段连续的数据,生成一个新列表
通过偏移量对列表范围进行定位
[1:3]的范围为1<=x<3,包头不包尾
冒号左右的值可不填,冒号某侧不取值则取到底

4.2.2 列表的修改

直接使用赋值语句

4.2.3 列表的增加

使用运算符号 +
注意:符号+只能用于列表间合并

4.2.4 列表的删除

使用del

4.2.5 列表的遍历

for obj  in  listObj:
	print(obj)      
for x in a:
    print(x,end="#")

10#20#30#40#50#20#30#20#30#

4.2.6 复制列表所有的元素到新列表对象

list1 = [30,40,50]
list2 = list1
list1 = [30,40,50]
list2 = [] + list1

4.2.7 列表排序

sort方法

a.sort()

sorted方法:返回新列表,不对原列表做修改。

a = sorted(a)

reversed()返回迭代器:支持进行逆序排列,不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。

c = reversed(a)

5 range()创建整数列表

range()可以帮助我们非常方便的创建整数列表,这在开发中及其有用。为: start参数:可选,表示起始数字。默认是0 end参数:必选,表示结尾数字。 step参数:可选,表示步长,默认为1 python3中range()返回的是一个range对象,而不是列表。我们需要通过list()方法将其转换成列表对象。

语法格式:range([start,] end [,step])

list(range(3,15,2))

[3, 5, 7, 9, 11, 13]

6 列表推导式

列表推导式是 Python 中一种简洁而强大的工具,用于创建列表对象的一种快捷方式。它允许我们以一行代码生成列表,并且可以在生成过程中对元素进行筛选、变换和组合。

语法格式

[expression1 if condition else expression2 for item in iterable]

result = []
for item in iterable:
    if condition1:
        result.append(expression1(item))
    else:
        result.append(expression2(item))
numbers = [1, 2, 3, 4, 5]
even_odd = ['even' if num % 2 == 0 else 'odd' for num in numbers]
print(even_odd) 

[‘odd’, ’even’, ‘odd’, ’even’, ‘odd’]

[expression for item in iterable]

其中,expression 是生成列表元素的计算表达式,item 是可迭代对象中的每个元素,iterable 是一个可迭代对象(如列表、元组、集合等),它相当于:

result = []
for item in iterable:
    result.append(expression(item))

[expression for item in iterable if condition]

result = []
for item in iterable:
    if condition:
        result.append(expression(item))
#筛选偶数的列表:
even_numbers = [x for x in range(1, 11) if x % 2 == 0]
print(even_numbers)

[2, 4, 6, 8, 10]

7 多维列表

a=[
    ["st1",18,30000,"北京"],
    ["st2",19,20000,"上海"],
    ["st3",20,10000,"深圳"],]
#嵌套循环打印二维列表所有的数
for m in range(3):
    for n in range(4):
        print(a[m][n],end="\t")
    print()#打印完一行,换行

st1 18 30000 北京 st2 19 20000 上海 st3 20 10000 深圳

Licensed under CC BY-NC-SA 4.0