在Python(3.5)插入從一個列表值到另一個,如果我有一長列是這樣的:蟒 - 在預先定義的點
long_list = ['0','1','0','1','0','0'.'0'.'1','1','0']
和較短的列表長度等於的數「1'在long_list,就像這樣:
short_list = [8,7,6,5]
我將如何創建一個新的列表‘插入’我short_list的值代入我的long_list在每個地方有一個指數的‘1’,而對於一致性的緣故,用一些數字(比如99)代替long_list中的'0'。
我可以用一個令人痛苦的for循環來做到這一點,但它似乎應該有一種方式來更有效地與列表理解,沒有?
# bad solution
new_list = []
x = 0
for i in range(len(long_list)):
if long_list[i] == '0':
new_list.append(99)
else:
new_list.append(short_list[x])
x += 1
所需的輸出:
new_list = [99,8,99,7,99,99,99,6,5,99]
你確定'short_list'中的值總是和'long_list'中的''1'一樣多嗎? – roganjosh
是的,對於這個應用程序有。最終名單源自長列表。可能太多的信息來解釋實際使用情況(上面的例子是基於真實數據的玩具示例),但我確信短名單的值與'1'的值完全相同。 – user1895076