python中, 实现列表中的整型元素两两相乘或列表中的数组元素两两相与

1. 假设列表中的元素是整型, 可调用以下函数:

def list_any_two_mul(mylist):
     num = 1
     temp = []
     for i in mylist[:-1]:
         temp.append([i * j for j in mylist[num:]])
         num = num + 1
     # 把多个列表变成只有一个列表
     results = [y for x in temp for y in x]
     return results

假设有列表 mylist = [3, 5, 6, 8], 调用了以上的函数 list_any_two_mul(mylist) 则返回 [15, 18, 24, 30, 40, 48]

2. 假设列表中的元素是数组形式, 可以调用以下函数:

def list_any_two_and(mylist2):
     temp2 = []
     num2 = 1
     # 先对列表中的元素两两相与
     for i in mylist2[:-1]:
         temp2.append([cv2.bitwise_and(i, j) for j in mylist2[num2:]])
         num2 = num2 + 1
     # 再把相与后的结果放在一个列表中
     results2 = []
     for i in range(len(temp2)):
         for j in range(len(temp2[i])):
             results2.append(temp2[i][j])
     return results2

验证以上函数, 先生成元素是数组的列表,再调用函数, 具体实现可参照如下代码:

>>> import numpy as np
>>> a=np.arange(1,13).reshape(3,4)
>>> a
>>> array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])
>>> b=np.arange(13,25).reshape(3,4)
>>> b
>>> array([[13, 14, 15, 16],
       [17, 18, 19, 20],
       [21, 22, 23, 24]])
>>> c=np.random.randint(0,2,(3,4))
>>> c
>>> array([[0, 1, 1, 1],
       [0, 0, 1, 1],
       [0, 0, 1, 1]])
>>> d=[a,b,c]
>>> g=list_any_two_and(g)
>>> g
>>> [array([[1, 2, 3, 0],
        [1, 2, 3, 0],
        [1, 2, 3, 8]], dtype=int32), array([[0, 0, 1, 0],
        [0, 0, 1, 0],
        [0, 0, 1, 0]], dtype=int32), array([[0, 0, 1, 0],
        [0, 0, 1, 0],
        [0, 0, 1, 0]], dtype=int32)]
本人水平有限, 期待有更好更简便的方法, 有错误欢迎指正, 谢谢.

python 对列表中任意两个数进行操作 (python operate any two elements in list)的更多相关文章

  1. (笔试题)数组A中任意两个相邻元素大小相差1,在其中查找某个数。

    题目: 数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置.如数组:[1,2,3,4,3,4,5,6,5],找到4在数组中的位置. 思路: 很明显,在数组中寻找 ...

  2. [百度]数组A中任意两个相邻元素大小相差1,在其中查找某个数

    一.问题来源及描述 今天看了July的微博,发现了七月问题,有这个题,挺有意思的. 数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置.如数组:[1,2,3,4 ...

  3. 谷歌面试题:输入是两个整数数组,他们任意两个数的和又可以组成一个数组,求这个和中前k个数怎么做?

    谷歌面试题:输入是两个整数数组,他们任意两个数的和又可以组成一个数组,求这个和中前k个数怎么做? 分析: "假设两个整数数组为A和B,各有N个元素,任意两个数的和组成的数组C有N^2个元素. ...

  4. Python 去除列表中重复的元素

    Python 去除列表中重复的元素 来自比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) print l2 还 ...

  5. python去除列表中重复元素的方法

    列表中元素位置的索引用的是L.index 本文实例讲述了Python去除列表中重复元素的方法.分享给大家供大家参考.具体如下: 比较容易记忆的是用内置的set 1 2 3 l1 = ['b','c', ...

  6. Python统计列表中的重复项出现的次数的方法

    本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下:对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现在 ...

  7. hdu 4630 查询[L,R]区间内任意两个数的最大公约数

    No Pain No Game Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. 42.输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S, 如果有多对数字的和等于S,输出两个数的乘积最小的。

    输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S, 如果有多对数字的和等于S,输出两个数的乘积最小的. 这道题有很多烟雾弹: 首先如果有多对,最前面的两个数就是乘积最小的, ...

  9. 布尔上下文,这里misreading返回的是来源列表中元素的个数,如果列表中2个值都是undef,则列表元素个数是1: while( $misreading = (my $test_consideration, my $english_pragma) = each %map_function){

    布尔上下文,这里misreading返回的是来源列表中元素的个数, 列表赋值运算的值将会是来源列表中元素的个数,空列表表示0,如果列表中2个值都是undef,则列表元素个数是1 布尔上下文,这里mis ...

随机推荐

  1. jvm加载包名和类名相同的类的规则,以及如何加载包名和类名相同的类(转)

    jvm包括三种类加载器: 第一种:bootstrap classloader:加载java的核心类. 第二种:extension classloader:负责加载jre的扩展目录中的jar包. 第三种 ...

  2. iview table绑定双击事件

    <Table <Table ref="table" highlight-row :columns="columns" :data="new ...

  3. Web源码泄露总结

    Web源码泄露总结 背景 本文主要是记录一下常见的源码泄漏问题,这些经常在web渗透测试以及CTF中出现. 源码泄漏分类 .hg源码泄漏 漏洞成因: hg init的时候会生成.hg e.g.http ...

  4. Quartz.Net 任务调度之特性(3)

    再实现类中使用,就是继承IJob的类 [PersistJobDataAfterExecution] //执行后的保留作业数据,链式传参(上一次的任务数据) [DisallowConcurrentExe ...

  5. Struts拦截器Interceptor

    Struts2 拦截器 [Interceptor] 拦截器的工作原理如上图,每一个Action请求都包装在一系列的拦截器的内部.拦截器可以在Action执行直线做相似的操作也可以在Action执行直后 ...

  6. paper 135:关于C#泛型的知识点

    计划着要用一个月的时间把  C#语言Windows程序设计 搞定,现在是零零散散的知识点,日积月累吧!朋友们,看这里咯~呵呵 原文地址:http://www.blogjava.net/Jack2007 ...

  7. Random Point in Triangle

    题目链接 题意:多组输入三角形各个顶点坐标p1,p2,p3,在三角形中任取一点p,计算 期望E=max(S(p,p1,p2),max(S(p,p1,p3),S(p,p2,p3))); 思路:用随机数找 ...

  8. MySQL 5.7免安装版设置编码格式、设置root用户密码 远程登录.

    一.设置默认编码格式为utf-8 ... 由于免安装版并没有my.ini的配置文件.需要自行粘贴配置并创建一个my.ini 配置如下: [mysql] # 设置mysql客户端默认字符集 defaul ...

  9. MySQL允许远程登录配置

    1.查看user表mysql> use mysqlReading table information for completion of table and column namesYou ca ...

  10. (7)C++ 函数2

    一.内联函数 通常程序在调用函数时,程序会跳转到另一个地址上,意味着会多花开销.使用内联函数,编译器能够将函数调用替换成函数代码.这样会变得稍快一些 在函数原型的地方使用加了inline的函数定义 # ...