我有一個值串列:
a = [0.5, 2.3, 3.1, 1.4, 3.2, 2.2, 1.3, 1.5]
我想用一個值串列替換這些值之一。
b = [1.1, 1.6, 1.8]
例如,假設我想用串列 b 中的值替換值 1.3。我嘗試了這種方法,但沒有得到想要的結果:
new_a = [b if x==1.3 else x for x in a]
通過這種方式,我將一個串列插入到串列中。
[0.5, 2.3, 3.1, 1.4, 3.2, 2.2, [1.1, 1.6, 1.8], 1.5]
我想實作的結果是:
[0.5, 2.3, 3.1, 1.4, 3.2, 2.2, 1.1, 1.6, 1.8, 1.5]
uj5u.com熱心網友回復:
下面的方法給出了你想要的。我通過在a( idx) 中獲得 1.3 的位置來做到這一點,然后將串列帶到該位置,再加b上該位置之后的串列:
idx = a.index(1.3)
new_a = a[:idx] b a[idx 1:]
輸出:
[0.5, 2.3, 3.1, 1.4, 3.2, 2.2, 1.1, 1.6, 1.8, 1.5]
uj5u.com熱心網友回復:
您可以使用該index方法獲取具有 value 的元素的索引1.3;然后分配b給切片(當目標是切片時,a請參閱有關賦值語意的檔案)
ix = a.index(1.3)
a[ix : ix 1] = b
print(a)
輸出
[0.5, 2.3, 3.1, 1.4, 3.2, 2.2, 1.1, 1.6, 1.8, 1.5]
計時(對于這個輸入;包括設定代碼——即定義a和b)。
如果您需要創建一個新串列,下面的第二組結果來自重復執行上面相同的兩條陳述句加上之前的一條陳述句,這c = a.copy()會創建.a
# oda
255 ns ± 4.07 ns per loop (mean ± std. dev. of 7 runs, 100,000,000 loops each)
# oda (make a copy of a using a.copy() and assign to c, then modify a as above)
290 ns ± 5.93 ns per loop (mean ± std. dev. of 7 runs, 100,000,000 loops each)
# Emi
366 ns ± 8.24 ns per loop (mean ± std. dev. of 7 runs, 100,000,000 loops each)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/466038.html
上一篇:從字串串列中獲取整數值
