我可以在另一个表达式中临时为表达式别名吗?比如说,SQL中可能存在这种情况,其中表达式可能非常长,但我不熟悉用Python实现这一点的方法。我并不真正关心我是否应该这样做,我更好奇的是在Python语法中是否可以这样做
dict_a = {'p1c1': [0, 520],
'p1c2': [400, 740],
'p1c3': [600, 800],
'p1c4': [600, 800],
'p1c5': [660, 960],
'p1c6': [760, 1200],
'p2c1': [400, 900],
'p2c2': [600, 920],
'p2c3': [700, 1040],
'p2c4': [700, 1040],
'p2c5': [780, 1060],
'p2c6': [800, 1160],
'p3c1': [800, 1400],
'p3c2': [1150, 1450],
'p3c3': [1220, 1600],
'p3c4': [1220, 1600],
'p3c5': [1350, 1800],
'p3c6': [1580, 2000]}
原文:
dict_b = [dict_a[key][1] - dict_a[key][0] for key in dict_a.keys()]
期望的:
dict_b = [(r[1] - r[0]) with dict_a[key] as r for key in dict_a.keys()]
或者类似的东西
对于您的特定用例,您可以使用
.values()
而不是.keys()
:如果同时需要键和值,请使用
.items()
。在其他上下文中,Python通常具有方便的函数,允许类似的事情,例如enumerate()
对序列的索引和值进行迭代在没有这种快捷方式的情况下,只需使用一个规则的
for
循环,就可以分配中间变量。下面是如何将列表理解重写为一个循环你不需要。您只能使用键来获取值,但可以直接对值进行迭代
如果您确实需要这些键,那么您可以依次迭代这两个键
我知道实现这一点的唯一方法是在Python 3.8+中使用walrus操作符。这不完全是你要找的,但很相似
相关问题 更多 >
编程相关推荐