gpt4 book ai didi

python - 根据较长的字符串压缩字符串

转载 作者:行者123 更新时间:2023-11-28 20:20:03 26 4
gpt4 key购买 nike

给定 2 个字符串:

a='AAAAAAAA'
b='GGGG'

我想要一个结果

'AG','AG','AG','AG','A','A','A','A'

到目前为止,我已经尝试了 2 种方法,它们都只返回 4 个项目

map 方法:

list(map(lambda x,y:x+y,a,b))

结果:

'AG','AG','AG','AG'

压缩方式:

list(zip(a,b))

结果:

('A','G'),('A','G'),('A','G'),('A','G')

Map 方法看起来更接近我正在寻找的东西

最佳答案

您可以使用 itertools.zip_longest它接受一个 fillvalue 参数:

>>> from itertools import zip_longest
>>> a='AAAAAAAA'
>>> b='GGGG'

>>> [''.join(i) for i in zip_longest(a,b,fillvalue='')]
['AG', 'AG', 'AG', 'AG', 'A', 'A', 'A', 'A']

如果您想在不导入库的情况下执行此操作,您可以查看 zip_longest 源代码。您可能会注意到这是执行此类任务的最 pythonic 方式。

顺便说一句,您可以使用另一种非 pythonic 且高效的方法,例如,您可以使用 atr.ljustb 填充为特殊字符并使它的大小等于 a 然后压缩它们并使用列表理解来获得预期的输出:

>>> [''.join((i,j)) if j != '.' else i for i,j in zip(a,b.ljust(len(a),'.'))]
['AG', 'AG', 'AG', 'AG', 'A', 'A', 'A', 'A']

关于python - 根据较长的字符串压缩字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32645549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com