如何以可交换的方式连接来自两个不同列表索引的字符串

How to concatenate strings from two different list index wise in commutative way

我有两个字符串列表,我想以可交换的方式(AB = BA)将它们按索引连接起来。我能够获得输出,但我需要一些最佳方法来做到这一点。 两个列表是:

bus0 = ['NEVP', 'IPCO']
bus1 = ['CISO', 'DUK']

预期输出:

all links:  ['NEVP-CISO', 'IPCO-DUK', 'CISO-NEVP', 'DUK-IPCO']

我的做法是这样的

link1 = ['-'.join([i, j ]) for i, j in zip(bus0, bus1)]
link2 = ['-'.join([j, i]) for i, j in zip(bus0, bus1)]
allPossibleLinks = link1 + link2
print('link1: ', link1)
print('link2: ', link2)
print('all links: ', allPossibleLinks)

如您所见,我使用了两个 for 循环,所以我想知道有没有一种方法可以在一个循环中执行此操作或其他更好的方法?

您可以在一个循环中完成所有操作,而不是列表理解(从技术上讲,您可以,它只会变得丑陋)。

bus0 = ['NEVP', 'IPCO']
bus1 = ['CISO', 'DUK']

all_links = []
for i, j in zip(bus0, bus1):
    all_links.append(f'{i}-{j}')
    all_links.append(f'{j}-{i}')

答案是按这个顺序问的 ['NEVP-CISO', 'IPCO-DUK', 'CISO-NEVP', 'DUK-IPCO'] 不是 ['NEVP-CISO', 'CISO-NEVP', 'IPCO-DUK', 'DUK-IPCO']

all_links = []
temp = []
for (i,j) in zip(bus0, bus1):
    all_links.append(i + '-' + j)
    temp.append(j + '-' + i)
all_links.extend(temp)
print(all_links)

输出现在看起来像 - ['NEVP-CISO', 'IPCO-DUK', 'CISO-NEVP', 'DUK-IPCO']