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']
添加回答
举报
