6 回答

TA貢獻(xiàn)1808條經(jīng)驗 獲得超4個贊
問題出在內(nèi)循環(huán):這兩個appends會被調(diào)用兩次。固定代碼:
new_list = []
for x in List1:
new_list.append("AB" + x)
new_list.append("CD" + x)
關(guān)于鏈接調(diào)用:如果返回列表(附加了新項目)append它會起作用,但情況并非如此,該方法返回(doc)。appendappendNone

TA貢獻(xiàn)1906條經(jīng)驗 獲得超3個贊
也可以嘗試一個簡單的理解:
List1 = ["9016","6416","9613"]
result = [j+i for i in List1 for j in ('AB','CD')]
# ['AB9016', 'CD9016', 'AB6416', 'CD6416', 'AB9613', 'CD9613']

TA貢獻(xiàn)1799條經(jīng)驗 獲得超8個贊
最快的方法是使用列表理解。我們正在使用 2 列表理解來創(chuàng)建desired_list. 請注意,我還使用了 ,f string因此我可以輕松添加“AB andCD”前綴。
list1 = ["9016","6416","9613"]
desired_list = [f'AB{x}' for x in list1] + [f'CD{x}' for x in list1]
print(desired_list)

TA貢獻(xiàn)1865條經(jīng)驗 獲得超7個贊
我會按照以下方式使用itertools.product完成該任務(wù)
import itertools
list1 = ["9016","6416","9613"]
prefixes = ["AB","CD"]
result = [x+y for y,x in itertools.product(list1,prefixes)]
print(result)
輸出:
['AB9016', 'CD9016', 'AB6416', 'CD6416', 'AB9613', 'CD9613']

TA貢獻(xiàn)2019條經(jīng)驗 獲得超9個贊
這是一個使用的解決方案itertools.product:
from itertools import product
lst1 = ['9016', '6416', '9613']
lst2 = ['AB', 'CD']
result = list(map(''.join, map(reversed, product(lst1, lst2))))

TA貢獻(xiàn)1856條經(jīng)驗 獲得超11個贊
sum我們也可以使用:
In [25]: sum([[f'AB{i}',f'CD{i}'] for i in List1],[])
Out[25]: ['AB9016', 'CD9016', 'AB6416', 'CD6416', 'AB9613', 'CD9613']
添加回答
舉報