Python 嵌套字典推导式
有人能解释一下怎么做嵌套的字典推导式吗?
>> j = dict(((x+y,0) for x in 'cd') for y in 'ab')
>> {('ca', 0): ('da', 0), ('cb', 0): ('db', 0)}
我希望能这样做:
>> j
>> {'ca':0, 'cb':0, 'da':0, 'db':0}
谢谢!
4 个回答
1
dict((x+2*y, 0) for x in range(1,4,2) for y in range(15, 18, 2))
顺便说一下,我们所说的字典推导式,其实就是下面这样的东西,这个特性只在Python 2.7及以上版本中可用:
{x+2*y:0 for x in range(1,4,2) for y in range(15, 18, 2)}
4
你可以通过使用itertools里的笛卡尔积,把这个简化成一个循环。
>>> from itertools import product
>>> j=dict((x+y,0) for x,y in product('cd','ab'))
>>> j
{'cb': 0, 'ca': 0, 'db': 0, 'da': 0}
>>>
8
当然可以!请看下面的内容:
在编程中,有时候我们需要让程序做一些特定的事情,比如在某个条件满足时才执行某段代码。这就像给程序设定了一些规则,只有当这些规则被满足时,程序才会按照我们的要求去运行。
比如说,如果你想让程序在用户输入的数字大于10时,才显示“数字太大了”,你就需要用到条件判断。这种判断就像是在问:“这个数字大吗?”如果答案是“是”,那么程序就会执行显示信息的操作;如果答案是“不是”,程序就会跳过这一步。
这样做的好处是,程序可以根据不同的情况做出不同的反应,让它更加灵活和智能。
希望这个解释能帮助你理解条件判断的基本概念!
dict((x+y,0) for x in 'cd' for y in 'ab')