[英]compare elements in list to every other element in same list
我正在使用Python 2.7。 如果我有清单
a = [1,2,3,4,5]
我想要一个新列表,其中包含类似
b = [a[0]*a[1], a[0]*a[2], a[0]*a[3], a[0]*a[4], a[1]*a[0], a[1]*a[2], ... ]
其中每个元素与其他元素混用,但彼此不混搭。 我的直觉告诉我要执行以下操作(以非常非pythonic的方式):
b = []
for i in range(0,len(a)):
b.append(a[i]*a[i+1])
但这仅对列表中的第一个元素执行任务
您可以使用列表推导和enumerate
来执行乘法,这可以使用过滤器跳过自我乘法:
prods = [x*y for i, x in enumerate(a) for j, y in enumerate(a) if i!=j]
print(prods)
# [2, 3, 4, 5, 2, 6, 8, 10, 3, 6, 12, 15, 4, 8, 12, 20, 5, 10, 15, 20]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.