函数输出成对传递的字母

function to output pairwise of passed letters

我想创建一个 Python 函数,它可以接收字母并输出给定​​字母的成对比较。

例如,如果我的函数被命名为 pairwise_letters(),那么它应该如下所示:

>>> pairwise_letters('AB')
AB

>>> pairwise_letters('ABC')
AB  BC
AC

>>> pairwise_letters('ABCD')
AB  BC  CD
AC  BD  
AD  

>>> pairwise_letters('ABCDE')
AB  BC  CD  DE
AC  BD  CE
AD  BE
AE

>>> pairwise_letters('ABCDEF')
AB  BC  CD  DE  EF
AC  BD  CE  DF
AD  BE  CF
AE  BF
AF

...

使用itertools.combinations()获得每对。默认情况下,itertools.combinations() 输出一个可迭代的元组,您需要稍微修改一下以将其转换为字符串列表:

from itertools import combinations

def pairwise_letters(s):
    return list(map(''.join, combinations(s, 2)))
    
print(pairwise_letters("ABC"))

这输出:

['AB', 'AC', 'BC']

这个函数的表现是否符合您的预期?:

def pairwise_letters(s):
    for i in range(len(s)):
        print(*[''.join(j) for j in zip(s, s[i+1:])], sep=' ')

pairwise_letters('ABCDEF')
'''
AB BC CD DE EF
AC BD CE DF
AD BE CF
AE BF
AF