用python算任意两个数的和_python 对列表中任意两个数进行操作 (python operate any two elements in list)...

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)]

本人水平有限, 期待有更好更简便的方法, 有错误欢迎指正, 谢谢.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值