我有两个清单:
a = [1,3,6,10,20]
b = [2,4,9,12,15,22,24,25]
现在,我想创建一个新列表,其中包含前两个列表中的对.对的定义如下:
>左值[l,..]:a [i]
>右边的[..,r]:如果a [i 1]存在,则a [i]和a [i 1]之间b中的最高数字,如果a [i]存在,则比a [i]大,否则仅比a [-1]大,且0 <我<最大(len(a),len(b))
结果如下所示:
pair = [[1,2],[3,4],[6,9],[10,15],[20,25]]
有人知道该怎么做吗?
到目前为止,这是我所做的:
a = [1,25]
pairs = []
counter = 0
for i in range(max(len(a),len(b))):
try:
# get a[i]
ai = a[i]
except:
ai = a[-1]
try:
# get a[i+1]
ai1 = a[i+1]
except:
ai1 = b[-1]+1
temp = []
for bi in b:
if ai < bi and bi < ai1:
temp.append(bi)
# Avoid adding the last element of b again and again until i = len(b)
if max(temp) == b[-1]:
counter = counter +1
if counter <= 1:
print(max(temp))
pairs.append([ai,max(temp)])
没关系,因为它可以完成工作,但是我想知道,是否有更好,更有效的方法?
最佳答案
原文链接:/python/533319.html