
本文介绍了如何根据特定条件高效地过滤Python字典,并创建两个新的字典,分别包含符合条件的键值对。通过使用dict.items()迭代字典项和any()函数进行条件判断,避免了不必要的列表转换和嵌套循环,从而提高了代码的效率和可读性。文章提供了详细的代码示例和解释,帮助读者理解和应用这种高效的字典过滤方法。
在Python编程中,经常需要根据某些条件从现有字典中提取数据,并创建新的字典。例如,根据字典的值是否包含特定的字符串来分类数据。本文将介绍一种高效的方法,使用dict.items()迭代字典项,并结合any()函数进行条件判断,从而避免不必要的列表转换和嵌套循环,提高代码的效率和可读性。
假设我们有一个字典,其中键是字符串类型的ID,值是包含特定代码的字符串。我们需要根据这些代码将字典分成两个新的字典:一个包含以 "23C1"、"23C2"、"24C2" 或 "24C1" 开头的代码的键值对,另一个包含以 "23P1"、"23P2"、"24P2" 或 "24P1" 开头的代码的键值对。
以下代码展示了如何使用 dict.items() 和 any() 函数来实现高效的字典过滤:
立即学习“Python免费学习笔记(深入)”;
dct = {'48689': 'FINNIFTY02JAN24C20900', '46624': 'FINNIFTY09JAN24P20900', '40811':
'NIFTY14DEC23C20750', '40812': 'NIFTY14DEC23P20750', '40813': 'NIFTY14DEC23C20800', '40814':
'NIFTY14DEC23P20800', '40817': 'NIFTY14DEC23C20850', '40818': 'NIFTY14DEC23P20850', '40828':
'NIFTY14DEC23C20900', '40832': 'NIFTY14DEC23P20900', '40834': 'NIFTY14DEC23C20950', '40839':
'NIFTY14DEC23P20950'}
dict_C = {}
dict_P = {}
arrC = ["23C1", "23C2", "24C2", "24C1"]
arrP = ["23P1", "23P2", "24P2", "24P1"]
for key, value in dct.items():
if any(x in value for x in arrC):
dict_C[key] = value
elif any(x in value for x in arrP):
dict_P[key] = value
print("dict_C -", dict_C)
print("dict_P -", dict_P)代码解释:
输出结果:
dict_C - {'48689': 'FINNIFTY02JAN24C20900', '40811': 'NIFTY14DEC23C20750', '40813': 'NIFTY14DEC23C20800', '40817': 'NIFTY14DEC23C20850', '40828': 'NIFTY14DEC23C20900', '40834': 'NIFTY14DEC23C20950'}
dict_P - {'46624': 'FINNIFTY09JAN24P20900', '40812': 'NIFTY14DEC23P20750', '40814': 'NIFTY14DEC23P20800', '40818': 'NIFTY14DEC23P20850', '40832': 'NIFTY14DEC23P20900', '40839': 'NIFTY14DEC23P20950'}注意事项:
本文介绍了一种使用 Python 高效过滤字典并创建新字典的方法。通过使用 dict.items() 迭代字典项和 any() 函数进行条件判断,避免了不必要的列表转换和嵌套循环,从而提高了代码的效率和可读性。这种方法可以广泛应用于各种需要根据特定条件从字典中提取数据的场景。
以上就是使用Python高效过滤字典并创建新字典的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号