【问题标题】:How to concatenate strings from two different list index wise in commutative way如何以交换方式连接来自两个不同列表索引的字符串
【发布时间】:2022-01-16 13:33:17
【问题描述】:

我有两个字符串列表,我想以交换方式(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 循环,所以我想有一种方法可以在一个循环中执行此操作或其他更好的方法吗?

【问题讨论】:

    标签: python string concatenation


    【解决方案1】:

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

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

    【讨论】:

    • 嘿,谢谢你
    【解决方案2】:

    按此顺序提问 ['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']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多