本帖最后由 专注的一批 于 2019-10-16 11:26 编辑
什么是列表
列表是Python中最基本也是最常用的数据结构之一。列表中的每个元素都被分配一个数字作为索引, 用来表示该元素在列表内所排在的位置。第一个元素的索引是0,第二个索引是1,依此类推。
Python的列表是一个有序可重复的元素集合,可嵌套、迭代、修改、分片、追加、删除,成员判断。
从数据结构角度看,Python的列表是一个可变长度的顺序存储结构,每一个位置存放的都是对象的 指针。
列表的创建方式
# l=[] # ----第一种
# l=list() # -------第二种
l=list('str')
# out:['s', 't', 'r']
# ------------------------------------
l = list((1, 2, 3))
print(l)
# out:[1, 2, 3]
# ------------------------------------
l=[1, 'struggle', 3]
print(l)
# out:[1, 'struggle', 3]
ps:
看python源代码的方式,ctrl+鼠标点击
pep8 规则:用于提高代码的可读性
所有可以用for循环的都是可迭代的(Iterable)
for i in 'str':
print(i)
访问列表值
lis=['a', 'b', 'c']#-------注意列表中的索性从0开始
value=list[1]#------------取我们看到的第二个元素
#out:b
ps:
TypeError:类型错误
indexError:索性错误
修改元素的值
lis=['a', 'b', 'c']#--------改变列表中b的值
lis[1]='shell' # -------- 不能赋值列表中不存在的元素
print(lis)
#out:
['a', 'shell', 'c']
ps:
快速复制当前行ctrl+d
列表删除
lis=['a', 'b', 'c']
del lis[0]#-----------方法1使用del
print(del)
#out:['b', 'c']
print(lis.remove('a'))#------方法2使用remove,remove是移除第一次出现的值
print(lis)
#out:None------------注意使用remove返回的值为空
#out:['b', 'c']
print(lis.pop())#----------方法3使用pop函数,注意pop默认删除最后一个元素,且pop会有一个返回值
print(lis)
#out:c------默认删除最后一个,返回最后一个的值
print(lis.pop(1)) # --------指定删除
# out:b
列表的拼接
lis1=[1,2,3]
lis2=[4,5,6]
lis3=lis1 + lis2#--------第一种拼接的方法
print(lis3)
#out:[1, 2, 3, 4, 5, 6]
lis3=lis1.__add__(lis2)#----左右两边各2个下划线,魔法方法
print(lis3)
#out:[1, 2, 3, 4, 5, 6]
注意,列表不能相乘
但如果乘一个数呢?
lis1=[1,2,3]*3
print(lis1)
# out:[1, 2, 3, 1, 2, 3, 1, 2, 3]
列表的特殊操作
lis=['花果山', '水帘洞', '齐天大圣', '美猴王']
print('水帘洞' in lis)
# out: True
lis=['花果山', '水帘洞', '齐天大圣', '美猴王']
for i in lis:
print(i)
# out:
# 花果山
# 水帘洞
# 齐天大圣
# 美猴王
列表的常用函数
lis=[1, 2, 3, 4]
print(len(lis))# ------查看列表的长度
print(lis.__len__())# -------魔法方法
# out:4
print(max(lis))
print(min(lis))
# out:4
# 1
## 转换类型
s = 1
print(type(s))
# out:<class 'int'>
print(type(str(s)))
# out:<class 'str'>
列表的排序和反转
lis=[1, 2, 3, 4, 5, 6]
print(lis.reverse())
print(lis)
lis.sort()
print(lis)
lis.sort(reverse=True)
print(lis)
# None
# [6, 5, 4, 3, 2, 1]
# [1, 2, 3, 4, 5, 6]
# [6, 5, 4, 3, 2, 1]
IN PLACE修改本身
列表的内置方法
append(obj) # 在列表末尾添加新的对象
count(obj) # 统计某个元素在列表中出现的次数
extend(seq) # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) index(obj)从列表中找出某个值第一个匹配项的索引位置
insert(index, obj) # 将对象插入列表
pop(obj=list[-1]) # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 remove(obj) 移除列表中某个值的第一个匹配项
remove(obj) # 移除外汇返佣列表中某个值的第一个匹配项
reverse() # 反向列表中元素
sort([func]) # 对原列表进行排序
copy() # 复制列表
clear() # 清空列表,等于del lis[:]
li = ['a', 'b', 'c', 'd', 'a']
print(li.count('a'))
li.append(['花果山', '水帘洞'])
print(li)
li.extend(['定海针', '万妖朝'])
print(li)
li.insert(6,'e')
print(li)
# 2
# ['a', 'b', 'c', 'd', 'a', ['花果山', '水帘洞']]
# ['a', 'b', 'c', 'd', 'a', ['花果山', '水帘洞'], '定海针', '万妖朝']
# ['a', 'b', 'c', 'd', 'a', ['花果山', '水帘洞'], 'e', '定海针', '万妖朝']
|
|