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. 十、设计模式之代理(Proxy)模式

    什么是代理模式 代理模式是对象的结构模式,为其他对象提供一种对象以控制对这个对象的访问. 代理模式的结构图如下:(源自大话设计模式)   Subject:定义了RealSubject和Proxy的公共 ...

  2. 服务器中卸载JDK

  3. vue.js mixins 使用

    export default { data () { return { } }, created () { }, methods: { arrayContain (array, obj) { for ...

  4. Windows漏洞利用 ms17-010

    漏洞名称 SMB 远程命令执行漏洞(ms17-010) 漏洞描述 继2016年 8 月份黑客组织 Shadow Brokers 放出第一批 NSA “方程式小组”内部黑客工具后,2017 年 4 月 ...

  5. bzoj 3251

    http://www.lydsy.com/JudgeOnline/problem.php?id=3251 这道题在北京八十中的时候有人讲过.. 不过由于自己continue 写掉了一个所以调了很久. ...

  6. nginx的基础概念

    http://tengine.taobao.org/book/index.html   算是看书笔记吧,太多了就用自己的话写一下了 nginx是以多进程 的方式来工作的,启动时会有一个master进程 ...

  7. 跨主机网络-overlay(18)

    docker overlay跨主机网络 .环境 docker版本 Docker version -ce, build fc4de44 3台主机 192.168.55.51 host1 192.168. ...

  8. C++之前置自增与后置自增

    关于前置自增与后置自增的区别我是参考这里:http://bbs.bccn.net/thread-454977-1-1.html 简单复述下,比如++x; 与 x++; 在C中,++x这个表达式的值为原 ...

  9. 85、使用TFLearn实现iris数据集的分类

    ''' Created on 2017年5月21日 @author: weizhen ''' #Tensorflow的另外一个高层封装TFLearn(集成在tf.contrib.learn里)对训练T ...

  10. 55、saleforce 学习笔记二

    String goodsName = 'abcd1123汉字显示';//测试文本 System.debug('简化后的字符串名称为:'+goodsName.abbreviate(5)); //返回简化 ...