6 回答

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

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

TA貢獻1799條經驗 獲得超8個贊
最快的方法是使用列表理解。我們正在使用 2 列表理解來創建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貢獻1865條經驗 獲得超7個贊
我會按照以下方式使用itertools.product完成該任務
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貢獻2019條經驗 獲得超9個贊
這是一個使用的解決方案itertools.product:
from itertools import product
lst1 = ['9016', '6416', '9613']
lst2 = ['AB', 'CD']
result = list(map(''.join, map(reversed, product(lst1, lst2))))

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