list列表 tuple元组 range操作 dict字典 set集合 及相关操作

list列表

1. 什么是列表
定义: 能装对象的对象
在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求

列表存在索引和切片. 和字符串是一样的.

2. 相关的增删改查操作(重点)
添加:
  1. append() 追加
  2. insert(位置, 元素) 插入指定元素到指定位置
删除:
  1. pop(index) 根据索引删除
  2. remove(元素) 根据元素删除
修改:
索引修改
lst[索引] = 元素
查询:
for循环.

索引和切片
lst = ["天龙八部", "西游记", "红楼梦", "银平煤", "绿平煤"]
print(lst[3])
print(lst[-3])
print(lst)
print(lst[1:4]) # 切片,原来是什么类型. 得到的就是什么类型
print(lst[-1::-2]) # 倒着切


lst = ["凡人修仙传", "诛仙", "神墓"]
# 添加 append() 追加. 在后面添加
lst.append("看见")
lst.append("追风筝的人")

# 插入 insert(位置, 元素), 效率相对比较低
lst.insert(1, "琴帝")

# 迭代添加, 把传递进去的参数进行迭代. 把每一项添加到列表的末尾
lst.extend(["胡辣汤","猪蹄子", "猪头肉", "五花肉"])

print(lst)


# 删除
lst = ["斗破苍求", "手机", "爵迹", "满城尽带黄金甲", "三生三世十里桃花"]

# # pop() 默认从后往前删
# lst.pop()
# # pop(索引) 按照索引位置删除
# lst.pop(1)

# remove(元素) 移除
# lst.remove("满城尽带黄金甲") # 当元素不存在的时候会报错

# del lst[::2] # 用切片或者索引删除 不常用
lst.clear() # 清空.

print(lst)

修改
lst = ["苏秦", "武大", "武二", "宝元", "李诞", "池子", "王建国"]
# lst[3] = "松江" # 通过索引修改 index out of range 索引下标越界
# print(lst)
# lst[1:3] = ["麻花藤"] # 迭代更新(不常用)
# print(lst)
lst[1:5:2] = ["麻花藤", "码云"] # 坑: 如果步长不是1. 元素的个数必须要和切片的个数一致
print(lst)

lst = ["alex", "wusir", "胡辣汤"]
# 把列表中的wusir替换成大写 WUSIR
# 首先你要获取到2元素
# 变成大写
# 塞回去(必须要放回去)
lst[1] = lst[1].replace("wusir", "WUSIR")
print(lst)

查询, 列表是一个可迭代对象
lst = ["jay", "wlh", "lzw", "wf"]
for item in lst:      # item是lst中的每一项
print(item)

for i in 123:      # 'int' object is not iterable
print(i)

3. 列表的嵌套
多个列表互相嵌套

例如:

lst = [["张艺谋", "冯小刚", "陈凯歌"], ["李安", "王家卫", "王晶"], ["周杰伦",["abc", "alex_wusir", ["胡辣汤", "c"]], "风扇哥"]]
print(lst[1][1][2])

# 把王晶换成"贾樟柯"

lst[1][2] = "贾樟柯"

 print(lst)
# 降维操作 ["哈哈", "hehe", "houhou"] 一维 [[1,2,3], [12,4,5], [6,7,8]] 二维
# 数数
lst[2][1][1] = lst[2][1][1].replace("_", "$")
print(lst)


4. 列表的其他操作
1. count() 计数
2. sort() 排序 reverse = True
3. reverse() 翻转
4. len() 求长度

lst = ["太白", "太白", "太黑", "日天", "女神", "alex", "太白"]

print(lst.count("太白")) # 查看xxx元素出现的次数

lst = [1, 8,12,22,1,1,2,33,4,5]
# lst.sort() # 排序. 默认升序
lst.sort(reverse=True) # reverse 反向, 降序
print(lst)

lst = ["赤木", "樱木花道", "流川枫", "三井"]
lst.reverse() # 把列表翻转
print(lst)

lst= [1,2,3,4,5,"胡辣汤"]
print(len(lst)) # 查看列表中元素的个数

list # 按住ctrl +鼠标左键

tuple元组

元组用()表示, 只读列表. 
tu = ("DNF", "LOL", "王者荣耀", "QQ飞车", "炫舞", {}, tuple(), [])
print(tu)
# tu[1] = "呵呵" # 'tuple' object does not support item assignment
print(tu)

元组也有索引和切片
print(tu[3:5])
print(tu[3:7:2])

元组有坑
空元祖
tu = tuple() # 固定写法
元组中如果只有一个元素
tu = (1) # 不是元组 <class 'int'>
tu = (1, ) # 这个是元组 <class 'tuple'>
print(type(tu))

好习惯: 写元组的时候末尾加个逗号

tu = ("锅包肉", "酸菜炖粉条+五花肉", "红烧鲤鱼", "红烧肉")
# 元组也是可迭代的
for item in tu: # 可以使用for循环
print(item)


tu = (1, "哈哈", "胡辣汤", ["忍者", "神龟"])
# tu[1] = "呵呵" # 元组不可变
tu[3] = ["我是新列表"] # 改变了指向. 报错
tu[3].append("孙悟空") # 元组没改. 该的是元素内部 没有改变元组的指向. 不报错
print(tu)

range操作

i = 1
while i <=100:
print(i)
i += 1

range(参数) [0,参数)
for i in range(20):     # range()可以被迭代 0-9
print(i)

range(参数1, 参数2) [参数1, 参数2) 切片
for i in range(10, 20):
print(i)

range(参数1, 参数2, 参数3) [参数1, 参数2) 每隔参数3个位置取一个
for i in range(10, 20, 3):
print(i)

lst = ["周杰伦", "动画城", "大风车", "随便加", "宝宝", "孟孟", "萌萌", "孟萌"]

for item in lst:      # 只能拿到元素. 获取不到索引
print(item)

for i in range(len(lst)): # i就是索引 lst[i]元素    *****利用for   in 拿到索引
print(i, lst[i])

dict字典

猜你喜欢

转载自www.cnblogs.com/H1050676808/p/10054920.html