"for"、"lfor" 等中的多个迭代器,类似 "dct.items()"

Multiple iterators in "for", "lfor", etc. with something like "dct.items()"

如何将以下内容转换为 hy

dct = { 1:2, 3:4 }
print([i*j for i, j in dct.items()])
# => [2, 12]

我对你的标题感到困惑,因为你的示例中只有一个迭代子句,但无论如何,这是一个字面的 Hy 翻译:

(setv dct {1 2  3 4})
(print (lfor  [i j] (.items dct)  (* i j)))
; => [2, 12]

但您也可以使用影子乘法运算符来做到这一点:

(import  hy.pyops *)
(setv dct {1 2  3 4})
(print #* (map * (.keys dct) (.values dct)))
; => 2 12