当前位置: 首页 > 面试题库 >

多个列表的唯一唯一笛卡尔积

叶越
2023-03-14
问题内容

以下代码适用于cart_product([1,2,3], [a,b,c], [v]),它是否也返回重复的笛卡尔积,如果是,如何获得唯一的笛卡尔积?

import itertools
def cart_product(*somelists):
    for element in itertools.product(*somelists):
        print element

当我传递包含列表的列表时,这似乎也不起作用 [ [1,2,3],[a,b,c],[v] ]


问题答案:
  1. 要仅获取唯一元素,可以使用这样的set表示法( 注意: 这不能保证顺序)
    return list({element for element in itertools.product(*somelists)})
    

或根据Paul Draper的评论,我们可以像这样

    list(set(itertools.product(*somelists)))

如果您也想维护订单

    import itertools
def cart_product(somelists):
    result, tempSet = [], set()
    for element in itertools.product(*somelists):
        if element not in tempSet:
        tempSet.add(element)
        result.append(element)
    return result
  1. 要使您的程序可以使用列表列表,只需将函数声明
    def cart_product(*somelists):
    

    def cart_product(somelists):


 类似资料:
  • 问题内容: 如何从一组列表中获得笛卡尔积(值的所有可能组合)? 输入: 所需的输出: 问题答案: 在Python 2.6+中

  • 问题内容: 我试图创建一个表,我需要它不允许3个字段相同的行。 当我使用SQLLite在Python中创建表时,使用了以下代码,但几乎没有得到任何结果。它通常在写入2条记录后停止,因此显然可以相信它是重复的。 因此,我希望数据库不允许在ownerID1,ownerID2,accountKey和argID1相同的记录。 谁能帮我这个忙吗? 谢谢! 问题答案: 我不确定是什么问题。它在这里工作正常:

  • 问题内容: 假设我们有这些表: 是否有可能在上创建唯一约束,使得对于最多一个引用中的所有行,其值都为??陈述另一种方法,我可以创建一个唯一约束,以便上述表的连接没有重复项吗?我没有考虑- 我可以找到的每个数据库的语法似乎都与每个约束都限制在一个表上- 但这可能是我缺乏想象力的原因。(当然,去规范化以包含on是一种解决方案。) 问题答案: 您可以尝试以下方法。您必须在Parent中创建一个冗余的UN

  • 问题内容: 我正在尝试编写一些代码来测试一堆输入参数的笛卡尔积。 我看过了,但是它的功能并不是我想要的。有没有一种简单明了的方法来获取一个字典,每个字典中包含任意数量的键 和 每个值中任意数量的元素,然后生成具有下一个排列的字典? 输入: 输出示例: 问题答案: 好的,感谢@dfan告诉我我在错误的位置查看。我现在知道了: 编辑 :经过多年的Python经验,我认为一个更好的解决方案是接受输入,而

  • 假设我有几个,我会将它们放入另一个列表或其他集合中,所以在调用之前,我不知道我有多少个 应该是:

  • 问题内容: 我正在将SEAM 2 / Hibernate与PostgreSQL 9数据库一起使用。我有下表 我想添加一个约束,以确保每个新条目都具有active_band_user和active_band_date的唯一组合。 每秒可能有许多次尝试插入,因此我需要尽可能地提高效率,是否可以在实体映射中使用SEAM /hibernate注释? 提前致谢 问题答案: 没有Hibernate注释在插入/