如何在循环其他输入列表的同时输出多个列表?

2024-10-06 16:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

对于以下两个输入列表,我需要基于第一个列表的不同输出列表:

al = ["tr1", "tr2", "tr3"]
bl = ["tile1", "tile2", "tile3"]
newlist  = []

for a in al:
    for b in bl:
        c = a+b+"5"
        newlist.append(c)
print(newlist)

['tr1tile15', 'tr1tile25', 'tr1tile35', 'tr2tile15', 'tr2tile25', 'tr2tile35', 'tr3tile15', 'tr3tile25', 'tr3tile35']

期望输出:

newlist_tr1 = ['tr1tile15', 'tr1tile25', 'tr1tile35']
newlist_tr2 = ['tr2tile15', 'tr2tile25', 'tr2tile35']
newlist_tr3 = ['tr3tile15', 'tr3tile25', 'tr3tile35']

在Windows10、Python 3.7.6上工作


Tags: in列表foralbltr2tr1newlist
3条回答
bl = ["tile1", "tile2", "tile3"]
newlist  = []


for a in al:
    for b in bl:
        c = a+b+"5"
        newlist.append(c)
    print(newlist)
    newlist  = []

['tr1tile15', 'tr1tile25', 'tr1tile35']
['tr2tile15', 'tr2tile25', 'tr2tile35']
['tr3tile15', 'tr3tile25', 'tr3tile35']```

循环中需要一个中间列表

al = ["tr1", "tr2", "tr3"]
bl = ["tile1", "tile2", "tile3"]
newlist = []

for a in al:
    tmp = []
    for b in bl:
        tmp.append(a + b + "5")
    newlist.append(tmp)

print(newlist) 
# [['tr1tile15', 'tr1tile25', 'tr1tile35'], 
   ['tr2tile15', 'tr2tile25', 'tr2tile35'], 
   ['tr3tile15', 'tr3tile25', 'tr3tile35']]

使用^{}可以实现同样的效果

newlist = [[a + b + "5" for b in bl] for a in al]
al = ["tr1", "tr2", "tr3"]
bl = ["tile1", "tile2", "tile3"]

newlist = [[a + b + "5" for b in bl] for a in al]

结果:

[['tr1tile15', 'tr1tile25', 'tr1tile35'],
 ['tr2tile15', 'tr2tile25', 'tr2tile35'],
 ['tr3tile15', 'tr3tile25', 'tr3tile35']]

相关问题 更多 >