一.列表
1.列表的介绍
列表是python的基础数据类型之⼀ ,其他编程语⾔也有类似的数据类型. 比如JS中的数
组, java中的数组等等. 它是以[ ]括起来, 每个元素⽤' , '隔开⽽且可以存放各种数据类型:
lst = [1, '嗯嗯', [1,"哦哦"], ( "元", "组"), "abc", {"我
叫":"dict字典"},{"我叫集合","集合"}]
列表相比于字符串. 不仅可以存放不同的数据类型. ⽽且可以存放⼤量的数据. 32位
python可以存放: 536870912个元素, 64位可以存放: 1152921504606846975个元素.⽽且列
表是有序的(按照你保存的顺序),有索引, 可以切⽚⽅便取值.
2.列表的切片和索引
索引
lst = ['路飞','索隆','鸣人','娜美']
print(lst[0]) # 获取第一个元素 以此类推
print(lst[1]) # 第二个元素
lst[2] = '乔巴' ## 注意. 列表是可以发⽣改变的. 这⾥和字符串不⼀样
print(lst) # ['路飞','索隆','乔巴','娜美']
s0 = "娜美"
s0[0] = "美" # TypeError: 'str' object does not support item assignment 不允许改变
print(s0)
切片
lst = ['路飞','索隆','乔巴','娜美','罗宾']
print(lst[0:3]) # ['路飞','索隆','乔巴'']
print(lst[:3]) # ['路飞','索隆','乔巴']
print(lst[1::2]) # ['王剑索隆', '娜美'] 也有步⻓
print(lst[2::-1]) # ['乔巴', '索隆', '路飞'] 也可以倒着取
print(lst[-1:-3:-2]) # 倒着带步⻓
二.列表的增删改查
1. 增, 注意, list和str是不⼀样的. lst可以发⽣改变. 所以直接就在原来的对象上进⾏了操作
lst = ['路飞','索隆','乔巴','娜美']
print(lst)
lst.append("罗宾")
print(lst)
lst = []
while True:
content = input("请输⼊你要录⼊的员⼯信息, 输⼊Q退出:")
if content.upper() == 'Q':
break
lst.append(content)
print(lst)
lst = ['路飞','索隆','乔巴']
lst.insert(1,'罗宾') # 在1的位置插⼊罗宾. 原来的元素向后移动⼀位
print(lst)
# 迭代添加
lst = ['路飞','索隆','乔巴']
lst.extend(['罗宾','山治'])
print(lst)
2.删除
pop,remove,clear,del
lst = ['路飞','索隆','乔巴','娜美']
print(lst)
deleted = lst.pop() # 删除最后⼀个
print("被删除的", deleted)
print(lst)
el = lst.pop(2) # 删除2号元素
print(el)
print(lst)
lst.remove('路飞') # 删除指定元素
print(lst)
# lst.remove("哈哈") # 删除不存在的元素会报错
# # print(lst)
lst.clear() # 清空list
print(lst)
# 切⽚删除
del lst[1:3]
print(lst)
3.修改
索引切片修改
# 修改
lst = ['路飞','索隆','乔巴','娜美','罗宾']
lst[1] = '草帽' # 把1号元素修改成草帽
print(lst)
lst[1:4:3] = ['山治', '厨子'] # 切⽚修改也OK. 如果步⻓不是1, 要注意. 元素的个数
print(lst)
lst[1:4] = ['女帝太美了'] # 如果切⽚没有步⻓或者步⻓是1. 则不⽤关⼼个数
print(lst)
4. 查询, 列表是⼀个可迭代对象, 所以可以进⾏for循环
for i in lst:
print(i)
5. 其他操作
lst = ['路飞','索隆','乔巴','娜美','罗宾','路飞']
c = lst.count('路飞') # 查询路飞出现的次数
print(c)
lst = [1, 11, 22, 2]
lst.sort() # 排序. 默认升序
print(lst)
lst.sort(reverse=True) # 降序
print(lst)
lst = ['路飞','索隆','乔巴','娜美','罗宾','路飞']
print(lst)
lst.reverse()
print(lst)
l = len(lst) # 列表的⻓度
print(l)
三. 列表的嵌套
采⽤降维操作.⼀层⼀层的看就好.
lst = [1, "路飞", "suolon", ["罗宾", ["乔巴"], "娜美"]]
# 找到索隆
print(lst[2])
# 找到路飞和suolon
print(lst[1:3])
# 找到路飞的路字
print(lst[1][1])
# 将suolon拿到. 然后⾸字⺟⼤写. 再扔回去
s = lst[2]
s = s.capitalize()
lst[2] = s
print(lst)
# 简写
lst[2] = lst[2].capitalize()
print(lst)
# 把路飞换成路西
lst[1] = lst[1].replace("飞", "西")
print(lst)
# 把罗宾换成萝卜
lst[3][0] = lst[3][0].replace("宾", "卜")
print(lst[3][0])
lst[3][1].append("山治")
print(lst)