我有两列,如果A列重复,我想对B列的值进行求和。
A= {1 2 3 3 4 4}
B= {1 2 3 4 5 6 7}
结果应该是:
A B
1 1
2 2
3 7
4 18我的代码:
for i in range(len(a)):
r= np.sqrt(((x-x[j])**2)+((y-y[j])**2)))
if r <= A[i] <= r-5:
B=np.abs((r-0.007)-b[i])发布于 2015-11-18 13:19:38
A1 = [1, 2, 3, 3, 4, 4, 4]
B1 = [1, 2, 3, 4, 5, 6, 7]
A2 = []
B2 = []
for i in range(len(A1)):
if A1[i] != A1[i + 1]:
A2.append(A1[i])
B2.append(B1[i])
else:
j = i + 1
sum = B1[i]
while j < len(A1) and A1[i] == A1[j]:
sum += B1[j]
del A1[j]
del B1[j]
A2.append(A1[i])
B2.append(sum)
if j >= len(A1):
break
print A2
print B2产出如下:
1,2,3,4
1、2、7、18
发布于 2015-11-18 14:55:55
我认为最简单的方法是使用以下算法:
def create_buckets(l):
return [0]*(max(l)+1)
def fill_buckets(A, B):
buckets = create_buckets(A)
for i in range(len(A)):
buckets[A[i]] += B[i]
return buckets
A = [1, 2, 3, 3, 4, 4, 4]
B = [1, 2, 3, 4, 5, 6, 7]
output = fill_buckets(A, B)
for i in range(len(output)):
if output[i] != 0:
print(i, output[i])发布于 2015-11-21 20:25:45
我认为这是最简单的解决办法。
A1 = 1,2,3,3,4,4,4
B1 = 1,2,3,4,5,6,7 A2 = []
B2 = []
附加(A1)
附加(B1)
对于范围内的I(len(A1)-1):
if A1[i] != A1[i+1]:
A2.append(A1[i+1])
B2.append(B1[i+1])
else:
A2.pop()
A2.append(A1[i+1])
b = B2.pop()
B2.append(b+B1[i+1])打印A2
打印B2
产出: A2 = 1,2,3,4 B2 = 1,2,7,18
https://stackoverflow.com/questions/33780423
复制相似问题