最新企业网站系统,做谷歌推广一个月赚10万,广州网站建设规划,军事新闻最新1. 按字典 value 值排序
要点#xff1a;对于给定字典#xff0c;使用 sorted() 函数结合 items() 方法#xff0c;依据 value 进行排序#xff0c;也可以定义一个通用函数#xff0c;支持按 value 升序或降序排序。示例#xff1a;
python
d {a: 1, b: 2, c: 3, d: …
1. 按字典 value 值排序
要点对于给定字典使用 sorted() 函数结合 items() 方法依据 value 进行排序也可以定义一个通用函数支持按 value 升序或降序排序。示例
python
d {a: 1, b: 2, c: 3, d: 4}
# 对字典 d 按值排序lambda 函数指定排序依据为元素的第二个值即 value
sorted_d dict(sorted(d.items(), keylambda item: item[1]))
print(sorted_d)#通用函数方式
def sort_dict_by_value(d, reverseFalse):return dict(sorted(d.items(), keylambda item: item[1], reversereverse))d {a: 1, b: 2, c: 3, d: 4}
print(sort_dict_by_value(d))
print(sort_dict_by_value(d, reverseTrue))2. 字典推导式的用法和作用
要点字典推导式是简洁创建字典的方式类似列表推导式可以结合条件判断只将满足条件的元素纳入字典。示例
python
numbers [1, 2, 3, 4]
# 通过字典推导式将列表元素作为键其平方作为值创建字典
squared_dict {num: num**2 for num in numbers}
print(squared_dict)#只将满足条件的元素纳入字典
numbers [1, 2, 3, 4, 5]
# 只将偶数的平方纳入字典
squared_dict {num: num**2 for num in numbers if num % 2 0}
print(squared_dict)
3. 字符串转字典
要点将特定格式字符串按规则分割处理转换为字典如果字符串格式比较复杂如包含引号可以增加处理逻辑。示例
python
s a:1 |a1:2|a2:3|a3:4
result {}
# 去除字符串中的空格并按 | 分割成键值对列表
pairs s.replace( , ).split(|)
for pair in pairs:# 将每个键值对按 : 分割key, value pair.split(:)result[key] int(value)
print(result)# 复杂格式处理s a:1 | a1:2 | a2:3 | a3:4
result {}
pairs s.replace( , ).replace(, ).split(|)
for pair in pairs:key, value pair.split(:)result[key] int(value)
print(result)
4. 按列表元素 age 排序
要点对包含字典的列表按字典中的 age 键值从大到小排序也可以定义一个更灵活的排序函数支持按不同键排序。示例
python
alist [{name: Alice, age: 25}, {name: Bob, age: 20}, {name: Charlie, age: 30}]
# 使用 sorted 函数通过 lambda 函数指定按 age 排序reverseTrue 表示降序
sorted_alist sorted(alist, keylambda x: x[age], reverseTrue)
print(sorted_alist)# 定义排序函数支持按不同键排序
def sort_list_of_dicts(lst, key, reverseFalse):return sorted(lst, keylambda x: x[key], reversereverse)alist [{name: Alice, age: 25}, {name: Bob, age: 20}, {name: Charlie, age: 30}]
print(sort_list_of_dicts(alist, age, reverseTrue))5. 写出列表切片的结果
要点如果列表切片索引超出范围时会返回空列表。示例
python
my_list [a, b, c, d, e]
# 切片索引 11 超出列表长度返回空列表
print(my_list[11:])6. 列表生成式产生等差数列
要点使用列表生成式创建公差为 7 的等差数列也可以将其封装成函数方便生成不同首项和公差的等差数列示例
python
first_term 3 # 等差数列首项
num_terms 10 # 等差数列项数
# 通过列表生成式生成公差为 7 的等差数列
sequence [first_term i * 7 for i in range(num_terms)]
print(sequence)# 函数方式
def arithmetic_sequence(first_term, common_difference, num_terms):return [first_term i * common_difference for i in range(num_terms)]print(arithmetic_sequence(3, 7, 10))7. 找出两列表相同与不同元素
要点利用集合的交集和对称差集操作找出两列表相同和不同元素也可以处理多个列表找出所有列表的公共元素和不同元素示例
python
list1 [1, 2, 3, 4, 5]
list2 [4, 5, 6, 7, 8]
# 将列表转换为集合
set1 set(list1)
set2 set(list2)
# 求交集得到相同元素
common_elements list(set1.intersection(set2))
# 求对称差集得到不同元素
different_elements list(set1.symmetric_difference(set2))
print(相同的元素:, common_elements)
print(不同的元素:, different_elements)# 多列表方式lists [[1, 2, 3, 4, 5], [4, 5, 6, 7, 8], [5, 6, 7, 8, 9]]
sets [set(lst) for lst in lists]
# 求所有集合的交集
common list(set.intersection(*sets))
# 先合并所有集合再求与交集的差集
all_elements set.union(*sets)
different list(all_elements - set(common))
print(相同的元素:, common)
print(不同的元素:, different)
8. 删除列表重复元素
要点使用集合去除列表重复元素再转换回列表如果需要保留列表元素的原有顺序可以使用 dict.fromkeys() 方法。示例
python
my_list [1, 2, 2, 3, 4, 4, 5]
# 利用集合的唯一性去除重复元素
unique_list list(set(my_list))
print(unique_list)# 去重并且保留原来的顺序
my_list [1, 2, 2, 3, 4, 4, 5]
unique_list list(dict.fromkeys(my_list))
print(unique_list)
9. 新式类和经典类有什么区别
要点新式类和经典类在继承顺序、基类、属性查找和 __slots__ 属性支持上存在差异。Python 3 只有新式类Python 2 需显式继承 object 类创建新式类。示例
python
# Python 2 代码示例Python 3 只有新式类
# 经典类
class A:def method(self):print(As method)class B(A):passclass C(A):def method(self):print(Cs method)class D(B, C):passd D()
d.method() # 经典类采用深度优先输出 As method# 新式类
class A_new(object):def method(self):print(A_news method)class B_new(A_new):passclass C_new(A_new):def method(self):print(C_news method)class D_new(B_new, C_new):passd_new D_new()
d_new.method() # 新式类采用 C3 线性化输出 C_news method