获取列表项的所有组合及其名称

笨拙的孩子

我想获取值列表的所有组合。我能够通过以下代码做到这一点:

list_of_all_features_to_combine = [name1, name2, name3]
    
    
import itertools
all_combinations = []
for L in range(0, len(list_of_all_features_to_combine)+1):
    for subset in itertools.combinations(list_of_all_features_to_combine, L):        
         all_combinations.append(subset)

我打印出一种组合,如下所示:

print(all_combinations[0])

当然,我只会得到这些值。

我的问题是我想知道“哪些”项目被合并,因此我需要变量名。我可以想象,做到这一点的唯一方法是拥有一个以字符串为名称的字典列表,然后将它们组合在一起,但是我敢肯定,这样做有一种更简单,更优雅的方法。也许一些如何检索变量名的方法,这样我得到的输出像name1, name2 : (1,2)

源泉

也许这就是您要寻找的:

from itertools import combinations

name1, name2, name3 = 10,20,30
names = ["name1", "name2", "name3"]
list_of_all_features_to_combine = [name1, name2, name3]

my_globals = globals()
name_combs = [subset for L in range(len(names)+1) 
              for subset in combinations(names,L)]
result = {t:tuple(my_globals[var] for var in t) for t in name_combs }

结果看起来像这样:

print (result)

{(): (),
 ('name1',): (10,),
 ('name2',): (20,),
 ('name3',): (30,),
 ('name1', 'name2'): (10, 20),
 ('name1', 'name3'): (10, 30),
 ('name2', 'name3'): (20, 30),
 ('name1', 'name2', 'name3'): (10, 20, 30)}

要仅访问值的组合,请执行以下操作:

print (list(result.values()))

[(), (10,), (20,), (30,), (10, 20), (10, 30), (20, 30), (10, 20, 30)]

要仅访问名称组合:

print (list(result.keys()))
[(), ('name1',), ('name2',), ('name3',), ('name1', 'name2'), ('name1', 'name3'), ('name2', 'name3'), ('name1', 'name2', 'name3')]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查看所有可用的独特图标及其名称和缩略图的列表

来自分类Dev

在ListObject表列中创建所有工作表的索引列表及其名称

来自分类Dev

所有GTK图标及其名称的列表/文件夹

来自分类Dev

c#如何获取对象列表及其频率的所有唯一组合

来自分类Dev

遍历多个列表项的所有可能组合

来自分类Dev

在angularjs中获取模块名称及其所有依赖项列表

来自分类Dev

purrr:map()可打印列表中的项目及其名称

来自分类Dev

从对象及其子对象获取所有名称

来自分类Dev

如何从所有选定的下拉列表项中获取价值

来自分类Dev

如何使用ref获取所有列表项?

来自分类Dev

获取所有可用 pip 包及其版本的列表

来自分类Dev

从excel中的名称列表中产生所有组合

来自分类Dev

从字符串数组获取所有可能的名称组合?

来自分类Dev

获取所有组合框名称 VB.NET

来自分类Dev

获取列表python的所有有序组合

来自分类Dev

获取所有组合

来自分类Dev

Excel Power Query:如何将所有列表项组合成单行

来自分类Dev

在春季自动装配Bean列表并获取其名称

来自分类Dev

如何从列表中获取其名称的项目

来自分类Dev

从对象列表中获取其名称的字符向量

来自分类Dev

我想使用 itertools 的组合方法以列表列表的形式获取列表的所有组合

来自分类Dev

使用整数元素及其逆生成列表的所有可能组合

来自分类Dev

从列表中获取k个元素的所有可能组合

来自分类Dev

获取列表中邻居元素的所有组合

来自分类Dev

从列表中获取R中所有组合的东方式

来自分类Dev

获取C#中的键值对列表的所有可能组合

来自分类Dev

从两个列表中获取元素的所有组合?

来自分类Dev

获取过滤器列表并返回所有可能的组合

来自分类Dev

从列表中获取R中所有组合的东方式

Related 相关文章

  1. 1

    查看所有可用的独特图标及其名称和缩略图的列表

  2. 2

    在ListObject表列中创建所有工作表的索引列表及其名称

  3. 3

    所有GTK图标及其名称的列表/文件夹

  4. 4

    c#如何获取对象列表及其频率的所有唯一组合

  5. 5

    遍历多个列表项的所有可能组合

  6. 6

    在angularjs中获取模块名称及其所有依赖项列表

  7. 7

    purrr:map()可打印列表中的项目及其名称

  8. 8

    从对象及其子对象获取所有名称

  9. 9

    如何从所有选定的下拉列表项中获取价值

  10. 10

    如何使用ref获取所有列表项?

  11. 11

    获取所有可用 pip 包及其版本的列表

  12. 12

    从excel中的名称列表中产生所有组合

  13. 13

    从字符串数组获取所有可能的名称组合?

  14. 14

    获取所有组合框名称 VB.NET

  15. 15

    获取列表python的所有有序组合

  16. 16

    获取所有组合

  17. 17

    Excel Power Query:如何将所有列表项组合成单行

  18. 18

    在春季自动装配Bean列表并获取其名称

  19. 19

    如何从列表中获取其名称的项目

  20. 20

    从对象列表中获取其名称的字符向量

  21. 21

    我想使用 itertools 的组合方法以列表列表的形式获取列表的所有组合

  22. 22

    使用整数元素及其逆生成列表的所有可能组合

  23. 23

    从列表中获取k个元素的所有可能组合

  24. 24

    获取列表中邻居元素的所有组合

  25. 25

    从列表中获取R中所有组合的东方式

  26. 26

    获取C#中的键值对列表的所有可能组合

  27. 27

    从两个列表中获取元素的所有组合?

  28. 28

    获取过滤器列表并返回所有可能的组合

  29. 29

    从列表中获取R中所有组合的东方式

热门标签

归档