1.列表特有的操作
2.列表排序的两种方式
3.列表生成式及二维列表
一、列表特有的操作
Python的列表对象有许多内置的方法,这些方法提供了对列表进行各种操作的能力。以下是一些常用的列表方法:
(1)增加操作
append(x):向列表末尾添加一个元素。
lst = ['hello', 'word','hand','python']
print('原列表',lst,id(lst))#增加操作
lst.append('matlab')
print('增加元素之后:',lst,id(lst))
(2)在指定的index位置上插入元素x
insert(i, x):在指定索引i处插入一个元素x。
#inser(index)在指定的index位置上插入元素x
lst.insert(1,'yuwen')
print(lst)
(3)列表元素的删除操作
remove(x):移除列表中第一个匹配的元素x。
#列表元素的删除操作
lst.remove('word')
print('删除元素之后的列表;',lst,id(lst))
(4)使用pop(index)根据索引将元素取出,然后再删除
pop([i]):移除并返回列表末尾的元素,如果指定索引i,则移除并返回该索引处的元素。
# 使用pop(index)根据索引将元素取出,然后再删除
print(lst.pop(1))
print(lst)
(5)清除列表中所有的元素clean
clear():移除列表中的所有元素。
#清除列表中所有的元素clean
lst.clear()
print(lst,id(lst))
(6)列表的反向
reverse():对列表进行原地逆序。
lst = ['hello', 'word','hand','python']
lst.reverse()
print(lst,id(lst))
(7)列表的拷贝,将产生一个新的列表对象
copy():返回列表的一个浅拷贝。
lst1 = lst.copy()
print(lst1,id(lst1))
(8)列表的修改
# 列表元素的修改操作
# 根据索引进行修改
lst[1] = 'math'
print(lst)
其它:
extend(iterable):将另一个可迭代对象中的所有元素添加到列表末尾。
index(x[, start[, end]]):返回列表中第一个匹配元素x的索引,如果指定了start和end,则只在这个范围内搜索。
二、列表排序的两种方式
(1)
sort(key=None, reverse=False):对列表进行原地排序,key用于指定一个函数,该函数会在每个元素上调用,reverse为True表示降序排序。
lst = ['hello', 'Word','hand','Python']# 字符串元素lst1 = [98,55,36,77,58,29]# 数值元素
print('原列表:',lst1)# 排序,默认升序
lst1.sort()# 排序是在原来列表的基础上进行,不会产生新的列表对象
print('升序:',lst1)lst.sort()# 字符串排序,先排大写,再排小写,大写字母ASCLL码值小
print(lst)# 排序,降序
lst1.sort(reverse=True)
print('降序:',lst1)lst.sort(reverse=True)# 先小写再大写
print('降序:',lst)# 忽略大小写进行比较
# 转成同大小写
lst.sort(key=str.lower)# lower参数后不加括号
print(lst)
(2)生成新的对象
lst = ['hello', 'Word','hand','Python']# 字符串元素
lst1 = [98,55,36,77,58,29]# 数值元素# sorted生产新的对象
# 排序,升序
new_lst =sorted(lst)
new_lst1=sorted(lst1)
print('原列表:',lst)
print(new_lst)
print('原列表:',lst1)
print(new_lst1)
print('-------------------------------------')
# 排序,降序
desc_lst = sorted(new_lst,reverse=True)
desc_lst1= sorted(new_lst1,reverse=True)
print(desc_lst)
print(desc_lst1)
三、列表生成式及二维列表
(1)假设想生成一个包含0到9的数字列表
import random
lst = [i for i in range(1,11)]
print(lst)lst3 = [i*i for i in range(1,11)]
print(lst3)lst1 =[random.randint(1,100) for _ in range(10)]
print(lst1)
(2)使用条件来过滤列表中的元素。例如,生成一个包含0到19之间的偶数列表
even_list = [i for i in range(20) if i % 2 == 0]
print(even_list) # 输出: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
(3)二维列表式手动赋值输出和自动生成
# 二维列表创建
lst =[['城市','环比','同比'],['北京',102,103],['深圳',104,504],['上海',100,39],
]
print(lst)# 遍历二维列表使用双层for循环
for row in lst:# 行for i in row:# 列print(i,end='\t\t')print()# 换行
# 列表生成式生产一个4行5列的二维列表
lst2 =[[i for i in range(5)] for j in range(4)]
print(lst2)