我想增加陣列中值之間的最小“距離”。例如,如果我有陣列
44,45,47,51,65,66
我希望最小“距離”為 2。因此,所需的輸出將是
44,46,48,51,65,67
我試過做類似的事情
prevValue = array[0]
array.pop(0)
for a in array:
if(prevValue 1 >= a):
a = 1
這不是整個代碼,因為我創建了臨時陣列以免弄亂原始陣列。但是,這個邏輯是行不通的。
有沒有人做過類似的事情?我正在查看 np.arrange() 但這不是所需的用例。
謝謝!
uj5u.com熱心網友回復:
該行a = 1僅修改名為a;的區域變數。它不會修改串列中的任何元素。這是做你想做的一種方法:
list1 = [44, 45, 47, 51, 65, 66]
list2 = []
prev = None
for a in list1:
if prev and prev 1 >= a:
a = prev 2
list2.append(a)
prev = a
print(list2)
在 Python 中,它們實際上被稱為“串列”,而不是“陣列”。使用正確的搜索詞可能會幫助您自己更好地找到答案。
uj5u.com熱心網友回復:
嘗試(假設lst已排序):
lst = [44, 45, 47, 51, 65, 66]
distance = 2
for i in range(1, len(lst)):
diff = lst[i] - lst[i - 1]
if diff < distance:
lst[i] = distance - diff
print(lst)
印刷:
[44, 46, 48, 51, 65, 67]
對于distance = 5:
[44, 49, 54, 59, 65, 70]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/455209.html
標籤:数组 python-3.x 排序
上一篇:如何使整個鏈接標簽區域可點擊?
