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

对列表中的每对元素进行操作

缪升
2023-03-14
问题内容

我想使用Python比较列表中的每个可能的对。

假设我有

my_list = [1,2,3,4]

我想对列表中2个元素的每个组合进行操作(我们称其为foo)。

最终结果应与

foo(1,1)
foo(1,2)
...
foo(4,3)
foo(4,4)

我的第一个想法是手动遍历列表两次,但这似乎不是很Python。


问题答案:

product()itertools模块中签出。它完全符合您的描述。

import itertools

my_list = [1,2,3,4]
for pair in itertools.product(my_list, repeat=2):
    foo(*pair)

这等效于:

my_list = [1,2,3,4]
for x in my_list:
    for y in my_list:
        foo(x, y)

编辑:
有两个非常相似的功能,以及,permutations()combinations()。为了说明它们之间的区别:

product() 生成所有可能的元素对,包括所有重复项:

1,1  1,2  1,3  1,4
2,1  2,2  2,3  2,4
3,1  3,2  3,3  3,4
4,1  4,2  4,3  4,4

permutations()生成每个唯一元素对的所有唯一顺序,从而消除x,x重复项:

 .   1,2  1,3  1,4
2,1   .   2,3  2,4
3,1  3,2   .   3,4
4,1  4,2  4,3   .

最后,combinations()仅按字典顺序生成每个唯一的元素对:

 .   1,2  1,3  1,4
 .    .   2,3  2,4
 .    .    .   3,4
 .    .    .    .

这三个函数都是在Python 2.6中引入的。



 类似资料:
  • 问题内容: 我在python中有一个字符串元素列表,想用来编辑元素中的每个元素,所以我有一个新元素。请参见下面的代码(它不起作用,但是您会明白的): 有没有办法做到这一点? 问题答案:

  • 本文向大家介绍javascript实现对表格元素进行排序操作,包括了javascript实现对表格元素进行排序操作的使用技巧和注意事项,需要的朋友参考一下 我们在上网中都能看到很多能够排序的,如大小、时间、价格等 现在我们也试一下排序功能: 排序的函数代码:里面含有点击之后排序--还原,和排升序和降序。 设置表格的背景颜色代码,导入的css: css代码: 效果图-----排序之前: 升序: 降序

  • 问题内容: 我知道可以将一个列表连接成一个长字符串,如下所示: 显然,这将输出: 但是,我想做的就是简单地将列表中的第一个和第二个字符串连接起来,然后连接第三个和第四个字符串,依此类推。简而言之,从上面的示例中取而代之的是: 有没有简单的方法可以做到这一点?我可能还应该提到,列表中字符串的长度以及列表中字符串的数量都是不可预测的,尽管字符串的数量始终是偶数。因此原始列表也可能是: 问题答案: 您可

  • 问题内容: 我有一个小整数列表,说: 我希望收集顺序对并返回一个包含从这些对创建的元组的新列表,即: 我知道必须有一种非常简单的方法来执行此操作,但不能完全解决。 谢谢 问题答案: 好吧,有一种非常简单但有些脆弱的方法,将其自身切片后再压缩。 如果您不知道,最后一个slice参数是“ step”。因此,我们从零(1、3、5)开始选择列表中的第二个项目。然后,我们执行相同的操作,但是从一个(2,4,

  • 本文向大家介绍python3 对list中每个元素进行处理的方法,包括了python3 对list中每个元素进行处理的方法的使用技巧和注意事项,需要的朋友参考一下 在写代码过程中我们常常可能会遇到这样一种情况,要对一个list中的每个元素做同样的操作时,两种方法 方法一:循环遍历每个元素 话不多说,上代码 输出a 方法二:用map函数 但是map函数返回的是一个map类型,所以要想查看值需要把它再

  • 如何对SELECT中的每一行执行附加查询(UPDATE)?我必须从select中获取每一行的金额,并将其发送到用户的余额表。 示例: 我的select语句: 从市场表中选择结果 我们得到7个金额并将其发送到用户余额表。 用户的余额表 Postgres版本9.3