python基础语法-python三大内建数据结构之列表(list)
程序员文章站
2022-05-19 14:23:48
...
列表(list):一组有顺序的数据的组合(用中括号括着)。(元组tuple是一种特殊的列表,不能修改,具有list所有操作除了修改(用圆括号括着))
1.创建及分片
# 空列表
l1 = []
# 有初值的列表(可放入若干个各种类型的数据)
l2 = [1, 2, 3, "lk"]
# 类似构造的创建方法
l3 = list()
# 列表的访问,按照下标索引(编程语言编号几乎都是从零开始) 下标索引不能越界
print(l2[0])
# 列表的分片操作 l[开始位置:结束位置(达不到):步长(默认为1)] 分片操作的位置可以越界,但超出的不会考虑
l = [1, 2, 3, 4, 5, 6]
# 位置值可以一个或者两个为空,系统给默认值开始位置和结束位置+1
print(l[:])
print(l[0:4:2])
print(l[-2:-4])
print(l[-2:-4:-1])#改变方向从右往左
分片操作会产生一个新的list,而不是共同管理变量的关系。
l = [1, 2, 3, 4, 5]
l1 = l
l2 = l[:]
print(id(l))
print(id(l1))
print(id(l2))
2.删除
list1 = [1, 2, 3, 4, 5]
print(list1)
print(id(list1))
del(list1[0])
print(list1)
print(id(list1))
3.列表的加、乘以及成员资格运算
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8]
list3 =list1+list2
print(list3)
list4 = list1*3
print(list4)
print(1 in list1)
print(10 in list1)
4.遍历(python独有的遍历方法)
list1 = [1, 2, 3, 4, 5]
list2 = [["a", 1], ["b", 2]]
for item in list1:
print(item,end=" ")
print()
# 字典的遍历方法,局限性高
for k,v in list2:
print(k, ",", v)
5.列表内容的生成方式(也可以for嵌套)
list1 = [1, 2, 3, 4, 5]
list2 = [item for item in list1]
print(list2)
list3 = [item*10 for item in list1]
print(list3)
list4 = [item for item in list1 if item % 2 == 0]
print(list4)
str1 = "13579"
list5 = [int(item) for item in str1]
print(list5)
6.列表常用的内置函数(可自行查看说明文档)
list1 = [1, 2, 3, 4, 5]
# 列表长度也就是元素个数
print(len(list1))
# 求最大值
print(max(list1))
# 求最小值
print(min(list1))
# 求和
print(sum(list1))
# 转换为list
str1 = "i study python"
print(list(str1))
print(list(str1.split(" ")))
#查找列表指定值的个数
print(lis1.count(1))
7.列表内容添加
append末尾追加
list1 = [1, 2, 3, 4, 5]
list1.append(6)
print(list1)
insert指定位置前添加
list1 = [1, 2, 3, 4, 5]
list1.insert(0,0)
print(list1)
8.列表内容删除
del删除见前
pop弹出最后一个元素,并返回
list1 = [1, 2, 3, 4, 5]
print(list1.pop())
print(list1)
remove删除列表中某个值
list1 = [1, 2, 3, 4, 5,"m"]
list1.remove("m")
print(list1)
clear清空列表所以元素,但内存仍在(java List类似)
list1 = [1, 2, 3, 4, 5]
list1.clear()
9.数据变换
reverse所有数据倒序重存
list1 = [1, 2, 3, 4, 5]
list1.reverse()
extend后面加上一个列表
list1 = [1, 2, 3, 4, 5]
list2 = [4,3,2,1]
list1.extend(list2)
10.列表的拷贝和浅拷贝
赋值(传址)和浅拷贝(传值)区别
# python中赋值表示共同管理一份数据
list1 = [1, 2, 3, 4, 5]
list2 = list1
list2.pop()
print(list2)
print(list1)
# 拷贝则是把值拿过来重新分配内存
list1 = [1, 2, 3, 4, 5]
list2 = list1.copy()
list2.pop()
print(list2)
print(list1)
深拷贝和浅拷贝区别(浅拷贝只拷贝一层内容)
#浅拷贝表现
list1 = [1, 2, 3, 4, 5, [20, 30]]
list2 = list1.copy()
print(id(list1))
print(id(list2))
print(id(list1[5]))
print(id(list2[5]))
list1[5][0] = 40
print(list1)
print(list2)
最后关于tuple说一句,这里的不可修改是指那一份数据不可修改,两个tuple连接给一个新的tuple这类本质是创建的操作是允许的。但是内容修改会违法。
上一篇: 如何消除焦虑的三个最佳方法
下一篇: 超准性格测评,帮你了解自己
推荐阅读
-
Python3基础之list列表实例解析
-
Python新手学习基础之数据结构-列表3 删除 popcleardelremove
-
Python基础总结之第六天开始【认识List:列表】【认识Tuple:元组】【还有他们基本的操作】(新手可相互督促)
-
python3基础梳理02数据结构之列表(list)和元组(tuple)
-
Python3基础之list列表实例解析
-
python基础语法-python三大内建数据结构之列表(list)
-
python基础语法-python三大内建数据结构之集合(set)
-
Python新手学习基础之数据结构-列表2 添加
-
Python3基础之list列表实例解析
-
Python3基础之list列表实例解析