Python 迭代dict(x项除外)
我有一份这种格式的口述:Python 迭代dict(x项除外),python,dictionary,Python,Dictionary,我有一份这种格式的口述: d_data = {'key_1':value_1,'key_2':value_2,'key_3':value_3,'key_x':value_x,'key_n':value_n} 我必须迭代它的项目: for key,value in columns.items(): do something 除了这对: 'key_x':value_x 只需使用该语句,即可跳到for循环的下一次迭代: for key,value in columns.items():
d_data = {'key_1':value_1,'key_2':value_2,'key_3':value_3,'key_x':value_x,'key_n':value_n}
我必须迭代它的项目:
for key,value in columns.items():
do something
除了这对:
'key_x':value_x
只需使用该语句,即可跳到for循环的下一次迭代:
for key,value in columns.items():
if key == 'key_x':
continue
# do something
您可以使用列表理解或生成器表达式来筛选:
for key,value in (i for i in columns.items() if not i==('key_x',value_x)):
do something
您还可以通过以下方式迭代
filter
内置方法的输出(生成Python3+中的生成器):
>>> for x in filter('key_x'.__ne__, d_data):
print(x, d_data[x])
key_3 value_3
key_n value_n
key_1 value_1
key_2 value_2
是的,是我<代码>过滤器+
lambda
是非音速的、缓慢的,并且已被禁用<代码>过滤器('key_x..\u ne__,d_data)是一个等效的替代方案,或者更好的方法是使用理解。@wim…是的…我最近刚刚了解到他们将过滤器
,映射
或任何类似的lambda
组合在一起的想法会降低性能…谢谢你的建议和更新的代码,现在我的问题是,什么是使用\uu ne\uuu
或类似方法的适当位置?是否可以仅按值而不是按完整规范值+键进行筛选?尝试.values()
?IF的语法将是IF note i==(value\ux)
?