Python中从X到Y的所有函数的列表

斯特灵

我有两个有限集X和Y,我想生成一个列表,其中包含从X到Y的所有函数(即,从X到Y的所有映射,其中每个映射都表示为字典,其键是X的元素,其值为Y的元素;请注意,从X到Y的映射必须对X的每个元素都有一个键。例如,如果X = {1,2}和Y = {'a','b'},我想获得以下词典列表。

[{1:'a',2:'a'},{1:'a',2:'b'},{1:'b',2:'a'},{1:'b',2:'b'}]

我认为下面的代码可以满足我的需求,但是我想变得更好地成为Pythonic,所以我想知道是否有一种不需要递归帮助器功能的单行代码。

def ntuples(A,n):
    if n == 0:
        return {()}
    else:
        return {x + (a,) for x in ntuples(A,n-1) for a in A}
def X_to_Y(X,Y):
    return [{x:y[i] for (i,x) in enumerate(X)} for y in ntuples(Y,len(X))]
帝斯曼

追逐一线是pythonic反面,但是避免递归通常是个好主意。在这种情况下,我们可以使用它itertools.product来处理最困难的部分,然后将其包装在listcomp中:

>>> from itertools import product
>>> X = {1,2}
>>> Y = {'a','b'}
>>> [dict(zip(X,y)) for y in product(Y,repeat=len(X))]
[{1: 'a', 2: 'a'}, {1: 'b', 2: 'a'}, {1: 'a', 2: 'b'}, {1: 'b', 2: 'b'}]

(我假设你不要太在意是否看到{1: 'b', 2: 'a'}{1: 'a', 2: 'b'}列表中的第一个。)

请记住,如果有根本无需兑现名单一次,你可以更换[]使用(,并)使用一台发电机的表达,而不是listcomp,你可以遍历的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python中从X到Y的所有函数的列表

来自分类Dev

遍历2个Python列表并获取所有x到y的组合

来自分类Dev

列表/数据框-对Python中的所有值运行函数

来自分类Dev

返回语句列表中内置的所有函数的Python使用

来自分类Dev

python“所有”函数使列表为空

来自分类Dev

调用列表中的所有Javascript函数

来自分类Dev

如何从多个具有相同值的字典中获取所有值到列表python中

来自分类Dev

如何在Python中获得1到n个列表列表的所有组合

来自分类Dev

如何删除文本文档中从X到Y的所有内容?

来自分类Dev

如何在python中获取在两个列表之间进行插值的函数(每个列表都有自己的x,y)?

来自分类Dev

查找两个列表x和y之间的配对的所有组合,以使y中的所有元素与x中的一个正好配对

来自分类Dev

选择y表中的所有x

来自分类Dev

在 python 3.x 中创建给定列表的所有子集的列表

来自分类Dev

从python中的列表中删除所有'#'

来自分类Dev

生成x和y之间所有日期的列表

来自分类Dev

将函数1中的元组的所有元素(从* args)传递到python中的函数2中(作为* args)

来自分类Dev

将函数1中的元组的所有元素(从* args)传递到python中的函数2中(作为* args)

来自分类Dev

PYTHON:将所有行插入到特定符号后的数组/列表中

来自分类Dev

将模块内的所有函数和类导入到python类中

来自分类Dev

如何在python中访问模块的所有内置函数的列表

来自分类Dev

如何在python中访问模块的所有内置函数的列表

来自分类Dev

从python中的列表列表创建列表的所有组合

来自分类Dev

Python中列表所有元素的频率

来自分类Dev

从Python 3.4中的列表返回所有对

来自分类Dev

替换列表 Python 中的所有元素

来自分类Dev

在Python中找到函数x = a * sin(x)的所有根

来自分类Dev

在python中查找函数的所有根

来自分类Dev

在Python中,如何获取Mac OS X中所有分区的列表?

来自分类Dev

Python x Tweepy:如何从列表中包含的所有用户中提取推文

Related 相关文章

  1. 1

    Python中从X到Y的所有函数的列表

  2. 2

    遍历2个Python列表并获取所有x到y的组合

  3. 3

    列表/数据框-对Python中的所有值运行函数

  4. 4

    返回语句列表中内置的所有函数的Python使用

  5. 5

    python“所有”函数使列表为空

  6. 6

    调用列表中的所有Javascript函数

  7. 7

    如何从多个具有相同值的字典中获取所有值到列表python中

  8. 8

    如何在Python中获得1到n个列表列表的所有组合

  9. 9

    如何删除文本文档中从X到Y的所有内容?

  10. 10

    如何在python中获取在两个列表之间进行插值的函数(每个列表都有自己的x,y)?

  11. 11

    查找两个列表x和y之间的配对的所有组合,以使y中的所有元素与x中的一个正好配对

  12. 12

    选择y表中的所有x

  13. 13

    在 python 3.x 中创建给定列表的所有子集的列表

  14. 14

    从python中的列表中删除所有'#'

  15. 15

    生成x和y之间所有日期的列表

  16. 16

    将函数1中的元组的所有元素(从* args)传递到python中的函数2中(作为* args)

  17. 17

    将函数1中的元组的所有元素(从* args)传递到python中的函数2中(作为* args)

  18. 18

    PYTHON:将所有行插入到特定符号后的数组/列表中

  19. 19

    将模块内的所有函数和类导入到python类中

  20. 20

    如何在python中访问模块的所有内置函数的列表

  21. 21

    如何在python中访问模块的所有内置函数的列表

  22. 22

    从python中的列表列表创建列表的所有组合

  23. 23

    Python中列表所有元素的频率

  24. 24

    从Python 3.4中的列表返回所有对

  25. 25

    替换列表 Python 中的所有元素

  26. 26

    在Python中找到函数x = a * sin(x)的所有根

  27. 27

    在python中查找函数的所有根

  28. 28

    在Python中,如何获取Mac OS X中所有分区的列表?

  29. 29

    Python x Tweepy:如何从列表中包含的所有用户中提取推文

热门标签

归档