本文主要是介绍11.python 列表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
列表
为什么需要列表
变量可以存储一个元素,而列表是一个大容器,可以存储n多元素,程序可以方便的对这些数据进行整体操作
列表相当于其它语言中的个数组
列表的创建与删除
列表需要使用中括号[],元素之间使用英文的逗号进行分割
列表的创建
使用中括号创建
# ----------列表----------
lst = ['python', 'pycharm', '', 1]
调用内置函数list()
a = list(['python', 'pycharm', '', 1])
print(id(a), a, type(a))
列表的特点
列表元素按顺序有序排序
索引映射为一个数据
列表可以存储重复数据
任意数据类型混存
根据需要动态分配和回收内存
列表的删除
# ---------列表删除----------
lst = ['python', 'pycharm', '', 1]
# 按下标删除
del lst[2] # ['python', 'pycharm', 1]
# 按内容删除
lst.remove(1) # ['python', 'pycharm']
# 清空列表
lst.clear() # []
列表的查询操作
获取列表中指定元素的索引:index()
如果所查列表中存在多个相同元素,只返回第一个元素的索引
如果查询的元素再列表中不存在,则会抛出ValueError
还可以在指定的start和stop之间进行查找
获取列表中的单个元素
正向索引从0到N-1
逆向索引从-N到-1
指定索引不存,抛出indexError
# ----------查询----------
ls = ['python', 'pycharm', 'aa', 'c']
lst = [1, 2, 10, 100, 1]
print(lst.index(1)) # 0,只返回所查元素的第一个的索引
print(lst.index(2, 1, 5)) # 在下标1-5之间的元素中查找2
print(len(lst), max(lst), min(lst), list(lst)) # 列表元素个数、列表中最大值
print(max(ls), min(ls))
print(lst[2], ls[-2])
获取列表中多个元素
list[start,stop,step]
切片操作
结果:原列表片段的拷贝
范围:[start,stop]
step默认是1
step为正数:
切片的start默认是1,切片的stop默认是最后一个元素
step为负数:
切片的start默认是最后一个元素,切片的stop默认是第一位元素
# 获取多个元素
print(lst[0:2])
print(lst[0:4:2], lst[-1:-5:-2])
判断指定元素在列表中是否存在
column in list
column not in list
列表元素的遍历
for i in list:
操作
print(10 in lst)
print(100 not in lst)
for i in lst:
print(i)
列表的增删改操作
列表元素的增加操作
增加操作
|
方法
|
操作描述
|
append()
|
在列表尾部增加一个元素
|
extend()
|
在列表的末尾至少增加一个元素
|
insert()
|
在列表的任意位置增加一个元素
|
切片
|
在列表的任意位置添加至少一个元素
|
# 列表元素的增加操作
lst = [10, 20, 30]
print(lst)
lst.append(50) # append,在最后添加50
print("1次操作:"+str(lst))
tup = ('60', '80')
lst.extend(tup) # extend,在最后添加tup
print("2次操作:"+str(lst))
lst.insert(1, 15) # insert,在下标1的地方添加15
print("3次操作:"+str(lst))
lst1 = [30, 40, 50] # 切片,将原列表中2到3的数据删去,使用填充的元素进行添加
lst[2:3] = lst1
print("4次操作:"+str(lst))
列表元素的删除操作
删除操作
|
方法
|
操作描述
|
remove()
|
一次删除一个元素
|
重复的元素只能删除第一个
|
元素不存在抛出ValueError
|
pop()
|
删除一个指定索引位置上的元素
|
指定索引不存在抛出IndexError
|
不指定索引删除列表中最后一个元素
|
clear()
|
请空列表
|
del
|
删除列表
|
切片
|
一次至少删除一个元素
|
# 列表元素的删除操作
lst = [10, 15, 30, 40, 50, 30, 80]
lst.remove(50)
print(lst)
lst.pop(4)
print(lst)
del lst[-3:-1]
print(lst)
newlst = lst[1:3] # 切片,生成一个新的列表对象
print(newlst)
lst[1:3] = [] # 不产生新的列表对象,而是删除原列表中的内容
print(lst)
lst.clear()
print(lst)
del lst # 删除整个列表
print(lst)
列表元素的修改操作
为指定索引的元素赋予一个新值
为指定的切片赋予一个新值
# 列表元素的修改操作
lst = [1, 2, 3, 4, 5, 6, 7, 8]
lst[2] = 4
print(lst)
lst[1:3] = [5, 10, 15]
print(lst)
列表元素的排序
常见的两种方法:
调用sort()方法,列中的所有元素默认按照从小到大的顺序进行排列,可以指定reverse=True来降序排序
调用内置函数sorted(),产生一个新的列表对象,可以指定reverse=True,进行降序排序,愿列表不发生变化
# ----------排序----------
# sort
lst = [2, 3, 1, 5, 4, 6, 8, 7]
lst.sort() # 正序排列
print(lst)
lst.sort(reverse=True) # 倒序排列
print(lst)
# sorted
lst = [2, 3, 1, 5, 4, 6, 8, 7]
print("原列表"+str(lst))
newlst = sorted(lst)
print(newlst)
newlst = sorted(lst, reverse=True)
print(newlst)
列表生成式
列表生成式简称‘生成列表的公式’
语法格式:[i*i for i in range(1,10)]
注意事项:‘表示列表元素的表达式’中通常包含自定义变量
import math
lst = [round(math.sqrt(i*2),1) for i in range(1, 10)]
print(lst)
这篇关于11.python 列表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!