1.列表的操作
列表操作:索引/切片/步长
索引:[START|-START]
number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(number[-1])
切片:[START|-START:END|-END]
number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(number[-9:-1])
注意:切片方法只顾头不固定(因此必须+1);
步长:[START|-START:END|-END:STEP|-STEP]
number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(number[8::-1])
print(number[-1:-10:-1])
注意:步长方法只顾头不固定(因此必须+1);
增加:
append(): 表示将元素追加到列表尾部;
使用示例:
name = [123, "abc"]
name.append("456")
print(name)
insert(): 表示将元素指定位置插入到列表;
使用示例:
name = [123, "abc", 456, "def"]
name.insert(1,"666")
print(name)
extend(): 表示将字符进行迭代追加到列表;
使用示例:
name = []
name.extend("abcd")
name.extend([1, 2, 3, 4, "Only"])
print(name)
删除:
pop(): 表示按索引进行删除列表内的元素;默认移除列表的最后一个元素;
使用示例:
name = ["Only", "Zhangsan", "Meizhi"]
name.pop(1)
print(name)
注意:POP存在返回值, 将指定删除元素的进行返回, 并且只有该方法存在返回值内容;
remove(): 表示按元素进行删除列表内元素;
使用示例:
name = ["Only", "Zhangsan", "Meizhi"]
name.remove("Zhangsan")
print(name)
del LIST_VAR: 表示删除指定对象;
(A)在内存级别删除列表;
name = ["Only", "Zhangsan", "Meizhi"]
del name
print(name)
(B)按照索引删除;
name = ["Only", "Zhangsan", "Meizhi"]
del name[1]
print(name)
(C)切片+步长删除;按取的元素进行其删除;
name = ["Only", "Zhangsan", "Meizhi", "Gongzhi"]
del name[1:4] # 删除列表全部元素;
del name[1:4:2] # 删除每隔1个元素;
del name[:-2] # 删除前面2个元素;
print(name)
clear(): 表示清空列表里面的所有元素;
使用示例:
name = ["Zhangsan", "Meizhi"]
name.clear()
print(name)
修改:
(1)按照索引修改列表内的元素;
使用示例:
name = ["a", "b", "c", "d"]
name[3] = "good"
print(name)
name[-1] = "best"
print(name)
(2)按照切片修改列表内的元素;先将切片的区域内的所有内容删除, 再进行迭代添加内容至列表;
使用示例:
name = ["a", "b", "c", "d"]
name[:3] = "1234"
print(name)
查看:
(1)按照索引和切片来查找;
使用示例:
name = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(name[-9:-1])
print(name[8::-1])
print(name[-1:-10:-1])
(2)使用for循环进行迭代;
使用示例:
name = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in name:
print(i)
功能方法:
len(): 表示统计元素的总数;
使用示例:
name = [1, 2, 3]
print(len(name))
count(): 表示统计元素出现的个数;
使用示例:
name = ["a", "b", "a", "b", "c"]
print(name.count("a"))
print(name.count("c"))
index(): 表示通过元素查找索引且找不到则报错;可以进行其切片;
使用示例:
name = ["a", "b", "a", "b", "c"]
print(name.index("a",2, 5))
print(name.index("c",2, 5))
sort(): 表示进行其排序;默认为从小到大进行排序;
使用示例:
name = [5, 3, 6, 1, 4, 2]
name.sort() # 从小到大排序;
print(name)
name.sort(reverse=True) # 从大到小排序;
print(name)
reverse(): 表示将列表内的元素进行反转显示;
使用示例:
name = [1, 2, 3, 4, 5, 6]
name.reverse()
print(name)
range(): 表示可自定义数字范围列表并且通常和for循环结合使用;顾头不顾定;
使用示例1:
for i in range(0,101): print(i) # 顺序打印;[1,2,3,....100];
for i in range(0,101,2): print(i) # 打印偶数;
for i in range(101,0,-1): print(i) # 反转打印;
使用示例2:
name = ['wusir', 'alex', [99, ' taibai', '98'], 21]
for i in name:
if type(i) == list:
for n in i:
print(n)
else:
print(i)
列表嵌套:
列表多层嵌套:
实践示例:
name = ['rb', 'pl', [99, ' mz', '98'], 21]
(A)将"rb"变成全部的大写;
使用示例:
name[0] = name[0].upper()
print(name)
(B)将"mz"变成首字母大写且其他字母小写;
使用示例:
name[2][1] = name[2][1].strip().capitalize()
print(name)
(C)用数字的相加将99变成字符串的"100";
使用示例:
name[2][0] = str(name[2][0] + 1)
print(name)
(D)将字符串的98变成数字的100;
使用示例:
name[2][2] = int(name[2][2]) + 2
print(name)
2.元祖的操作
元祖操作:索引/切片/步长
索引:[START|-START]
number = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(number[-1])
切片:[START|-START:END|-END]
number = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(number[-9:-1])
步长:[START|-START:END|-END:STEP|-SETP]
number = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(number[8::-1])
print(number[-1:-10:-1])
注意:元祖是不可修改的, 并且儿子孙子可以进行修改(前提是可对应的数据类型);
在定义元祖时必须后面尾部添加","逗号;
功能方法:
append(): 表示将元素追加到元祖尾部;
使用示例:
name = (123, "abc")
name.append("456")
print(name)
len(): 表示统计元素的总数;
使用示例:
name = (1, 2, 3)
print(len(name))
count(): 表示统计元素出现的个数;
使用示例:
name = ("a", "b", "a", "b", "c")
print(name.count("a"))
print(name.count("c"))
index(): 表示通过元素查找索引且找不到则报错;可以进行其切片;
使用示例:
name = ("a", "b", "a", "b", "c")
print(name.index("a",2, 5))
print(name.index("c",2, 5))
3.字典的操作
类型分类:
(A)数据类型分类:
可变(不可HASH):列表/字典/集合;
不可变(可HASH):数字/布尔值/字符串/元祖;
(B)容器类型分类:
容器类:列表/元祖/字典;
非容器类:数字/字符串/布尔值;
字典介绍:
(A)以KEY/VALUE形式存储数据(映射, 存储到了的关系型数据);
(B)唯一且不变的KEY键;
HASH算法:字典的键通过HASH表转换成数字, 采用二分查找查询数字(即查找一半再找另一半);
(C)字典的VALUE可以是任意数据类型;
(D)字典的查询速度非常快, 存储的大量的关系型数据;
(E)字典在Python3.5包含3.5之前都是无序且3.6之后是有序的;
增加:
dic_name["KEY"] = "VALUE": 表示添加或修改键对应内容;有则进行替换否则没有就添加;
使用示例:
dic = {"name": "Only", "age": 18}
dic["hobby"] = "游泳"
print(dic)
setdefault(): 表示添加新的键和值;有则进行忽略否则没有就添加;
使用示例:
dic = {"name": "Only", "age": 18}
dic.setdefault("hobby", "游泳")
print(dic)
删除:
pop(): 表示按KEY进行删除字典内的键;有返回值且返回的值是键对应的值;
使用示例:
dic = {"name": "Only", "age": 18}
print(dic.pop("age"))
print(dic.pop("hobby", "没有hobby键"))
popitem(): 表示随机删除字典内的键;有返回值且返回值为元祖(其里面是删除的键值对);
使用示例:
dic = {"name": "Only", "age": 18}
print(dic.popitem())
print(dic)
clear(): 表示清空字典里面的所有键和值;
使用示例:
dic = {"name": "Only", "age": 18}
dic.clear()
print(dic)
del DIC_VAR: 表示删除指定对象;
(A)在内存级别删除列表;
dic = {"name": "Only", "age": 18}
del dic
print(dic)
(B)按照索引删除;
dic = {"name": "Only", "age": 18}
修改:
dic_name["KEY"] = "VALUE": 表示添加或修改键对应内容;有则进行覆盖否则没有就添加;
使用示例:
dic = {"name": "Only", "age": 18}
dic["hobby"] = "游泳"
print(dic)
update(): 表示两个字典的更新操作;
使用示例:
dic1 = {"name": "Only", "age": 22}
dic2 = {"age": "18", "hobby": "游泳"}
print(dic1)
dic1.update(dic2)
print(dic1)
查看:
get(): 表示指定键获取指定值;
使用示例:
dic = {"name": "Only", "age": 18, "hobby": "游泳"}
print(dic.get("name"))
print(dic.get("age"))
keys(): 表示获取指定字典的所有键;通常配合FOR循环进行使用;
使用示例:
dic = {"name": "Only", "age": 18, "hobby": "游泳"}
for i in dic.keys():
print(i)
values(): 表示获取指定字典的所有值;通常配合FOR循环进行使用;
使用示例:
dic = {"name": "Only", "age": 18, "hobby": "游泳"}
for i in dic.values():
print(i)
items(): 表示获取指定字典的键和值;通常配合FOR循环进行使用;
使用示例:
dic = {"name": "Only", "age": 18, "hobby": "游泳"}
for key,value in dic.items():
print(key, value)
分别赋值逻辑:
简单赋值:
a,b = 1, 2
a,b = (1, 2)
a,b = [1, 2]
使用示例:将a=1,b=3,用一行代码将a和b值互换;
a = 1
b = 2
a,b = b, a
字典嵌套:
实践示例:
dic = {
'name_list': ['碗蓉', '俊俊', '爽妹'],
'status': None,
'personal_msg': {
'name': '反面教材',
'age': 25,
'hobby_list': ['抽烟', '喝酒', '烫头'],
}
}
(A)给dic添加一个键值对"学校: 老男孩";
dic.setdefault("学校", "老男孩")
print(dic)
(B)将status对应的值改成True;
dic["status"] = True
print(dic)
(C)给name_list对应的列表追加一个元素: "平平";
dic["name_list"].append("平平")
print(dic)
(D)给personal_msg对应的字典添加一个键值对"sex: 男"
dic["personal_msg"].setdefault("sex", "男")
print(dic)
(E)将hobby_list对应的列表中的烫头改成唱歌;
dic["personal_msg"]["hobby_list"][-1] = "唱歌"
print(dic)