为了账号安全,请及时绑定邮箱和手机立即绑定

循环列表以使用不同的前缀输出每个元素两次

循环列表以使用不同的前缀输出每个元素两次

www说 2023-03-22 11:01:43
一个简单的列表,我想循环打印每个元素两次。每次添加不同的前缀。输出将附加到新列表中。List1 = ["9016","6416","9613"]理想的结果是:['AB9016', 'CD9016', 'AB6416', 'CD6416', AB9613', 'CD9613']我在下面尝试过,但输出是:new_list = []for x in List1:     for _ in [0,1]:         new_list.append("AB" + x)         new_list.append("CD" + x)打印(新列表)['AB9016', 'CD9016', 'AB9016', 'CD9016', 'AB6416', 'CD6416', 'AB6416', 'CD6416', 'AB9613', 'CD9613', 'AB9613', 'CD9613']我不能使用:new_list.append("AB" + x).append("CD" + x)正确的做法是什么?谢谢。
查看完整描述

6 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞


问题出在内循环:这两个appends会被调用两次。固定代码:


new_list = []


for x in List1:

    new_list.append("AB" + x)

    new_list.append("CD" + x)

关于链接调用:如果返回列表(附加了新项目)append它会起作用,但情况并非如此,该方法返回(doc)。appendappendNone


查看完整回答
反对 回复 2023-03-22
?
一只名叫tom的猫

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']


查看完整回答
反对 回复 2023-03-22
?
守着星空守着你

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)


查看完整回答
反对 回复 2023-03-22
?
莫回无

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']


查看完整回答
反对 回复 2023-03-22
?
慕少森

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))))


查看完整回答
反对 回复 2023-03-22
?
呼唤远方

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']


查看完整回答
反对 回复 2023-03-22
  • 6 回答
  • 0 关注
  • 259 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号