Python基本知识点总结
1. 集合类型基本操作
1.1 列表(特点:有序,元素组成多样化)
# 创建列表
li = [] # 创建空列表 []
string_li = ["1", "2", "3"] # 创建字符串列表 ['1', '2', '3']
number_li = [1, 2, 3] # 创建数字列表 [1, 2, 3]
l1 = list({1, 2, 3, 4, 5, 6, 7, 7}) # 将集合转换为列表 [1, 2, 3, 4, 5, 6, 7]
l2 = list({"a": 1, "b": 2}) # 将字典转换为列表 ['a', 'b']
l3 = list((1, 2, 3)) # 将元组转换为列表 [1, 2, 3]
# print(li, string_li, number_li, l1, l2, l3, sep="\n")
# 向列表中添加元素
li1 = []
li1.append(0) # 添加元素0 [0]
li1.append([1, 2]) # 添加列表元素[1,2] [0, [1, 2]]
# li1.extend(3) # extend方法的对象必须是可以迭代的对象(比如说列表) 直接调用会报错
li1.extend([4, 5]) # 添加列表[4,5]中的每个元素添加到列表中 [0, [1, 2], 4, 5]
li1.insert(-1, 6) # 在指定索引位置添加元素,虽然列表的最后索引可以用-1表示,但使用-1索引插入会出现在倒数第二个元素位置 [0, [1, 2], 4, 6, 5]
li1.insert(len(li1), [7, 8]) # 使用len(li)获取列表长度,此时添加元素则位于列表末端(直接使用大于列表长度的值,也会得到相同结果) [0, [1, 2], 4, 6, 5, [7, 8]]
li1.insert(0, 9) # 使用0作为索引,此时添加元素则位于列表首端 [9, 0, [1, 2], 4, 6, 5, [7, 8]]
# print(li1)
# 删除列表中的元素
li3 = [1, 2, 2, 3, 4, 5, 6, 7, 8, 9] # 等价于 li3 = list(range(1, 10))
li3.pop() # [1, 2, 2, 3, 4, 5, 6, 7, 8] 删除列表最后一个元素,返回值为最后一个元素值,可以不接收返回值
li3.reverse() # [8, 7, 6, 5, 4, 3, 2, 1] 翻转列表
li3.pop() # [8, 7, 6, 5, 4, 3, 2] 同上
li3.reverse() # [2, 2, 3, 4, 5, 6, 7, 8] 翻转列表
li3.remove(2) # [2, 3, 4, 5, 6, 7, 8] 删除指定元素,只删除第一个
print(li3)
# 遍历列表
li4 = list(range(1, 10))
for i in li4: # 直接遍历,但不能修改列表中的值
print(i, end=" ")
i = 1
print()
# print(li4)
for i in range(len(li4)): # 通过索引遍历,range(start,end)刚好包括start(缺省条件下默认为0),不包括end
print(li4[i], end=" ")
li4[i] = 1
print()
# print(li4)
# 其它方法
print([1, 1, 2].count(1)) # 计数
li5 = [1, 2, 4, 3]
li5.sort() # 排序
print(li5)
1.2 字典(特点:键值对,可以通过键访问值)
# 创建字典
dic1 = {}
dic2 = {"a": 1, "b": 2} # {'a': 1, 'b': 2}
dic3 = dict([["a", 1], ["b", 2]]) # {'a': 1, 'b': 2}
# print(dic2, dic3, sep="\n")
# 字典中添加,修改键值对
d1 = {"a": 1, "b": 2}
d2 = {"c": 33, "d": 4}
d1["a"] = 11 # 修改键值对
d1["c"] = 3 # 添加键值对
d1.update(d2) # 将d2更新到d1中,键相同,值不同的参照d2
d1.pop("a") # 根据键名删除指定键值对
print(d1.get("a")) # 根据键名获取值,不存在该键时,返回None
# print(d1["a"]) # 根据键名获取值,不存在该键时,直接罢工
print(d1)
# 字典遍历
dd = {"a": 1, "b": 2, "c": 3, "d": 4}
# 遍历键
for i in dd.keys():
print(i, end=" ")
print()
# 遍历键,访问其对应的值
for i in dd.keys():
print(dd[i], end=" ")
# 其它方法
print(dd.values()) # 获取字典的值的迭代对象(列表)
print(dd.keys()) # 获取字典的键的迭代对象(列表)
1.3 集合(特点: 自动去重)
# 创建集合
set1 = {} # 正式使用前可以看做集合也可以看成字典
set2 = {1, 2, 3, 4, 4} # 全自动去重 {1, 2, 3, 4}
set3 = set([1, 2, 3, 4, 4]) # 手动去重 {1, 2, 3, 4}
set4 = set({"a": 1, "b": 2}) # 同列表,使用字典的键集合
# print(set1, set2, set3, set4, sep="\n")
# 向集合中添加,删除元素
s1 = {1, 2, 3, 4, 5}
s2 = {5, 6, 7, 8, 9}
s1.add(5) # 添加重复元素,没有影响 {1, 2, 3, 4, 5}
# s1.pop() # 同列表,删除并弹出一个元素,测试了几次基本都是第一个元素
s1.update(s2) # {1, 2, 3, 4, 5, 6, 7, 8, 9} 更新集合,同字典的更新
s1.remove(5) # {1, 2, 3, 4, 6, 7, 8, 9} 删除指定元素
print(s1)
# 遍历集合(应该很少有用到的地方)
ss = set(range(1, 10))
for i in ss: # 可以直接迭代遍历
print(i, end=" ")
print()
# for i in range(len(ss)): # 不可以索引遍历
# print(ss[i], end=" ")
1.4 元组
t1 = (1, 1, 2, 3)
t2 = (1, 2, 3, 4)
t3 = tuple([1, 2, 3, 4])
t4 = tuple({1, 2, 3, 4, 5})
t5 = tuple({"a": 1, "b": 2})
print(t1, t2, t3, t4, t5, sep="\n")
print(t1.index(1))
print(t1.count(1))
2.字符串操作
s = "12,34,56,78,9"
print(s.split(",")) # ['12', '34', '56', '78', '9'] 根据特定字符切割字符串
print(s.endswith("9")) # True 判断是否以"9"结尾
print(s.startswith("2")) # False 判断是否以"2"开头
print(s.replace(",", "")) # 将字符串中的某个字符转化为另一个字符
# print(s) # 以上操作都不改变字符串本身
# 判断类字符操作函数
# 含有大写字母且不包含小写字母时为True
print("a".isupper(), "A".isupper(), "1".isupper(), "a1".isupper(), "Aa".isupper(), "A1".isupper())
# 含有小写字母且不包含大写字母时为True
print("a".islower(), "A".islower(), "1".islower(), "a1".islower(), "Aa".islower(), "A1".islower())
# 全为字母时为True否则为False
print("a".isalpha(), "A".isalpha(), "1".isalpha(), "a1".isalpha(), " ".isalpha(), "A1".isalpha())
# isalnum()同上,全为数字时为True否则为False
# 全为空白时为True
print(" ".isspace(), " ".isspace())
3.其他好用的函数
print(int("1")) # 将字符串转为整数
print(float("1.1")) # 将字符串转为浮点数
print(round(1.234, 2)) # 保留几位小数
print(sorted([1, 4, 3, 2, 1])) # 排序
print(sorted([{"name": "张三", "age": 3},
{"name": "李四", "age": 30},
{"name": "王五", "age": 10}],
key=lambda x: x["age"])) # 使用lambda实现自定义排序
print(list(map(lambda x: x * x * x, [1, 2, 3, 4, 5]))) # 使用lambda操作列表每个元素,实现立方
print(list(filter(lambda x: x > 3, [1, 2, 3, 4, 5]))) # 使用lambda操作列表每个元素,实现过滤
4.例题
# 获取一个字符串中所有的大写字母,并返回这些大写字母排序后拼接成的字符串 例:s = "1A2D3C55FA"
# 自定义排序 按照salary与age的比值进行排序 li = [{"age":18, "salary": 2000},{"age":20, "salary": 2000},{"age":22, "salary": 20000},{"age":19, "salary": 3000},{"age":18, "salary": 5000}]