内置数据结构(变量类型)
list(列表)
# 1, 创建空列表
l1 = []
# type是内置函数,负责打印出变量的类型
print(type(l1))
print(l1)
# 2. 创建带值的列表
l2 = [100]
print(type(l2))
print(l2)
# 3. 创建列表,带多个值
l3 = [2,3,1,4,6,4,6]
print(type(l3))
print(l3)
# 4. 使用list()
l4 = list()
print(type(l4))
print(l4)
列表常用操作
# 分片操作
# 注意截取的范围,包含左边的下标值,不包含右边的下标值
print(l[1:4])
# 下标值可以为空,如果不写,左边下标值默认为0, 右边下标值为最大数加一,即表示截取到最后一个数据
print(l[:])
print(l[:4])
print(l[2:])
List(列表)
# del 删除
a = [1,2,3,4,5,6]
del a[2]
print(a)
# del 删除
# 如果使用del之后,id的值和删除前不一样,则说明删除生成了一个新的list
a = [1,2,3,4,5,6]
print(id(a))
del a[2]
print(id(a))
print(a)
# 使用加号链接两个列表
a = [1,2,3,4,5]
b = [5,6,7,8,9]
d = ['a', 'b', 'c']
c = a + b + d
print(c)
# 使用乘号操作列表
# 列表直接跟一个整数相乘
# 相当于把n个列表接在一起
a = [1,2,3,4,5]
b = a *3
print(b)
# 成员资格运算
# 就是判断一个元素是否在爱list里边
a = [1,2,3,4,5,6]
b = 8
#c 的值是一个布尔值
c = b in a
print(c)
b = 4
print(b in a)
# not in
a = [1,2,3,4,5]
b = 9
print(b not in a)
链表的遍历
# for in list
a = [1,2,3,4,5]
# 挨个打印a里边的元素
for i in a:
print(i)
b = ["I love wangxiaojing"]
for i in b:
print(i)
# 双层列表循环
#a 为嵌套列表,或者叫双层列表
a = [["one", 1], ["two", 2], ["three", 3] ]
for k,v in a:
print(k, "--", v)
列表内涵: list content
关于列表的常用函数
# len:求列表长度
a = [x for x in range(1,100)]
print(len(a))
# max:求列表中的最大值
# min: 同理
print(max(a))
b = ['man', 'film', 'python']
print(max(b))
# list:将其他格式的数据转换成list
a = [1,2,3]
print(list(a))
s = "I love wangxiaojing"
print(list(s))
# 把range产生的内容转换成list
print(list(range(12, 19)))
# append 插入一个内容, 在末尾追加
a = [ i for i in range(1,5)]
print(a)
a.append(100)
print(a)
# insert: 制定位置插入
# insert(index, data), 插入位置是index前面
print(a)
a.insert(3, 666)
print(a)
# 删除
# del 删除
# pop,从对位拿出一个元素,即把最后一个元素取出来
print(a)
last_ele = a.pop()
print(last_ele)
print(a)
# remove:在列表中删除指定的值的元素
# 如果被删除的值没在list中,则报错
# 即,删除list指定值的操作应该使用try。。。excepty语句,或者先行进行判断
# if x in list:
# list.remove(x)
a.insert(4, 666)
print(a)
print(id(a))
a.remove(666)
print(a)
print(id(a))
# clear:清空
print(a)
print(id(a))
a.clear()
print(a)
print(id(a))
# 如果不需要列表地址保持不变,则清空列表可以使用以下方式
# a = list()
# a = []
# reverse:翻转列表内容,原地翻转
a = [ 1,2,3,4,5]
print(a)
print(id(a))
a.reverse()
print(a)
print(id(a))
# extend:扩展列表,两个列表,把一个直接拼接到后一个上
a = [ 1,2,3,4,5]
b = [6,7,8,9,10]
print(a)
print(id(a))
a.extend(b)
print(a)
print(id(a))
# count:查找列表中指定值或元素的个数
print(a)
a.append(8)
a.insert(4, 8)
print(a)
a_len = a.count(8)
print(a_len)
# copy: 拷贝,此函数是浅拷贝,
# 列表类型变量赋值示例
a = [1,2,3,4,5,666]
print(a)
# list类型,简单赋值操作,是传地址
b = a
b[3] = 777
print(a)
print(id(a))
print(b)
print(id(b))
print("*" * 20)
# 为了解决以上问题,list赋值需要采用copy函数
b = a.copy()
print(a)
print(id(a))
print(b)
print(id(b))
print("*" * 30)
b[3] = 888
print(a)
print(b)
# 深拷贝跟浅拷贝的区别
# 出现下列问题的原因是,copy‘函数是个浅拷贝函数,即只拷贝一层内容
# 深拷贝需要使用特定工具
a = [1,2,3, [10, 20, 30]]
b = a.copy()
print(id(a))
print(id(b))
print(id(a[3]))
print(id(b[3]))
a[3][2] = 666
print(a)
print(b)
网友评论