我想创建一个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()输出一个元组的iterable,您需要对其进行一些处理,才能将其转换为字符串列表:

from itertools import combinations

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

这将产生:

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

Python相关问答推荐

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

重新匹配{ }中包含的文本,其中文本可能包含{{var}

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

大小为M的第N位_计数(或人口计数)的公式

将tdqm与cx.Oracle查询集成

使用密钥字典重新配置嵌套字典密钥名

NumPy中条件嵌套for循环的向量化

不允许访问非IPM文件夹

如果初始groupby找不到满足掩码条件的第一行,我如何更改groupby列,以找到它?

在numpy数组中寻找楼梯状 struct

为用户输入的整数查找根/幂整数对的Python练习

用fft计算指数复和代替求和来模拟衍射?

应用指定的规则构建数组

合并相似列表

Python如何导入类的实例

极点替换值大于组内另一个极点数据帧的最大值

浏览超过10k页获取数据,解析:欧洲搜索服务:从欧盟站点收集机会的微小刮刀&

用0填充没有覆盖范围的垃圾箱

如果列包含空值,则PANAS查询不起作用

#将多条一维曲线计算成其二维数组(图像)表示