我有一個元組J = (inf, sup, n)并且我想在 inf 和 sup 之間生成n個數字串列。
J = (-7, 9.5, 4)
預期的輸出應該是這樣的:
[-7,-2.875], [-2.875,1.25], [1.25,5.375], [5.375,9.5]
有人可以幫忙嗎?
提前致謝 !
uj5u.com熱心網友回復:
如果這是好的使用,numpy您可以使用numpy.linspace并獲得您想要的內容,如下所示:
>>> import numpy as np
>>> n = 4
>>> lst = list(np.linspace(-7, 9.5, num=n 1))
>>> list(zip(lst, lst[1:]))
[(-7.0, -2.875), (-2.875, 1.25), (1.25, 5.375), (5.375, 9.5)]
>>> list(map(list, zip(lst, lst[1:])))
[[-7.0, -2.875], [-2.875, 1.25], [1.25, 5.375], [5.375, 9.5]]
uj5u.com熱心網友回復:
抱歉,此平臺不是用于獲取代碼解決方案,而是用于除錯或修復代碼中的問題。如果您能提及到目前為止您嘗試過什么,那會有所幫助嗎?
但是,這里有一個解決方案。
您的輸入是 inf、n、sup。
如果您注意到,您會在 inf 和 sup 之間列出 n 個元組。
所以差異將是 (sup-inf)/n
在您給出的示例中,它將是 (9.5-(-7))/4 = 4.125。
因此,我們將通過在每個元組中存盤初始值和最終值來從 -7 移動到 9.5。
對于第一對,初始值 = -7 最終值 = -7 4.125 = -2.875
對于第二對,初始 = -2.875 最終 = -2.875 4.125 = 1.25
第三對,初始 = 1.25 最終 = 1.25 4.125 = 5.375
第四對 初始 = 5.375 最終 = 5.375 4.125 = 9.5
您可以創建一個回傳這些對的串列的函式。
def getLists(inf, n, sup):
output = []
initial = inf
final = sup
continuous_difference = (sup-inf)/n
while(initial != final):
output.append([initial, initial continuous_difference])
initial = continuous_difference
return output
if __name__ == '__main__':
print(getLists(-7, 4, 9.5))
uj5u.com熱心網友回復:
[[J[0] i/J[2]*(J[1]-J[0]), J[0] (i 1)/J[2]*(J[1]-J[0])] for i in range(J[2])]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/342906.html
下一篇:使用串列值創建二進制矩陣
