new_dictionary = {key_exp:value_exp for key, value in dict.items() if condition}
类似这种字典推导式的括号里面嵌套了for循环和if条件判断语句。应该如何理解?
它们的优先级是怎么看的?是从左到右运行,还是for语句优先运行?亦或者是if语句优先运行?
推导表达式就是省略的叠代表达式
arr = [n if n % 7 == 0 else n % 7 for n in range(100) if n % 3 == 0]
#展开
arr = []
for n in range(100):
if n % 3 == 0:
if n % 7 == 0:
arr.append(n)
else:
arr.append(n % 7)
可以看出优先级了吧,多重推导式也是类似的
望采纳:
类似这种字典推导式的括号里面嵌套了for循环和if条件判断语句。应该如何理解?——可以理解为在创建一个新的字典,并且在创建过程中,对于原字典中的每一个键值对,如果满足条件,则使用一个表达式来计算并赋值给新字典的相应键。
它们的优先级是怎么看的?——for循环的优先级高于if条件判断语句,即先执行for循环,然后在for循环中执行if条件判断语句