PyR*_*red 2 python zip dictionary list-comprehension list
我有两个数组:
a = [0.001,0.01,0.1,1]
h = [2,4,8,16,32,64]
Run Code Online (Sandbox Code Playgroud)
我想创建一个字典,这里的字典键的值的元组a,并h和字典的值是一个空列表.但是,我需要这样做的方式是每个唯一a值都h包含所需的输出:
d = {(0.001,2):[], (0.001,4):[], (0.001,8):[], (0.001,16):[], (0.001,32):[], (0.001,64):[],
(0.01,2):[], (0.01,4):[], (0.01,8):[], (0.01,16):[], (0.01,32):[], (0.01,64):[],
(0.1,2):[], (0.1,4):[], (0.1,8):[], (0.1,16):[], (0.1,32):[], (0.1,64):[],
(1,2):[], (1,4):[], (1,8):[], (1,16):[], (1,32):[], (1,64):[]}
Run Code Online (Sandbox Code Playgroud)
问题是,如上所述,手动编写它是单调乏味的.
无论如何要使用zip或列出理解吗?提前致谢
你需要的不是zip哪个不是你的名单,而是itertools.product一个词典理解:
import itertools
a = [0.001,0.01,0.1,1]
h = [2,4,8,16,32,64]
d = {z:[] for z in itertools.product(a,h)}
print(d)
Run Code Online (Sandbox Code Playgroud)
结果:
{(0.01, 2): [], (0.1, 64): [], (0.001, 64): [], (0.01, 64): [], (0.001, 2): [], (1, 4): [], (0.01, 4): [], (1, 64): [], (0.1, 8): [],
(0.01, 8): [], (1, 2): [], (0.1, 32): [], (0.001, 32): [], (0.01, 32): [], (1, 16): [], (0.001, 8): [], (1, 8): [], (0.1, 16): [],
(0.001, 16): [], (0.01, 16): [], (0.001, 4): [], (1, 32): [], (0.1, 4): [], (0.1, 2): []}
Run Code Online (Sandbox Code Playgroud)