gpt4 book ai didi

python - 如何减少 if/elif 语句中的重复代码

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:10 27 4
gpt4 key购买 nike

执行以下模式的更好方法是什么?

for platform_id in previous_platform_ids:
if self.series.get(platform_id):
del self.series[platform_id]
elif self.seasons.get(platform_id):
del self.seasons[platform_id]
elif self.episodes.get(platform_id):
del self.episodes[platform_id]
elif self.movies.get(platform_id):
del self.movies[platform_id]
elif self.bundles.get(platform_id):
del self.bundles[platform_id]

基本上,我想遍历一堆 id 并从包含它的列表中删除该 id。

最佳答案

self.series.pop(platform_id,None)
self.seasons.pop(platform_id,None)
self.episodes.pop(platform_id,None)
self.movies.pop(platform_id,None)
self.bundles.pop(platform_id,None)

似乎它会做同样的事情(或者实际上不完全是这会从所有字典中删除它( key )不仅存在于它找到的第一个字典中,您的代码只会删除它找到的第一个实例...不确定这是不是故意的)

当然你可以做类似的事情

for content_type in content_types:
getattr(self, content_type).pop(platform_id,None)

如果你只想删除你找到的第一个你可以做

 content_dicts = [self.series,self.seasons,self.episodes,self.movies,self.bundles]
next(x.pop(platform_id,None) for x in content_dicts if platform_id in x)

关于python - 如何减少 if/elif 语句中的重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32490267/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com