gpt4 book ai didi

python - 返回按两个分组的字符串字母列表

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:10 25 4
gpt4 key购买 nike

我有一个由字母和数字组成的字符串,我想要一个按两个分组的列表,即我有:

shv = "abcdef"

我想要:

('ab'; 'cd', 'ef')

我能做到:

thv  = (shv[0:2], shv[2:4], shv[4:6]) 

但不知何故,这似乎有点不通用:有没有更好的方法,即对于具有任何一侧和另一个分组值的字符串(例如,按 n 个字母的组)

最佳答案

您可以使用列表理解并利用 rangestep 参数:

[shv[i:i+2] for i in range(0, len(shv)-1, 2)]

对于任意n:

def my_awesome_grouping_function(shv, n):
return [shv[i:i+n] for i in range(0, len(shv)-(n-1), n)]

演示:

>>> shv="abcdef"
>>> [shv[i:i+2] for i in range(0, len(shv)-1, 2)]
['ab', 'cd', 'ef']
>>> [shv[i:i+3] for i in range(0, len(shv)-2, 3)]
['abc', 'def']

我修整了上限,因为我认为您不想要任何尾随的不完整对。你?如果你只是去 len(shv) 我相信你会在最后一个元素中得到剩余的 len(shv) % n 字母。

>>> shv="abcdefgh"
>>> [shv[i:i+3] for i in range(0, len(shv), 3)]
['abc', 'def', 'gh']
>>> [shv[i:i+3] for i in range(0, len(shv)-1, 3)]
['abc', 'def', 'gh']
>>> [shv[i:i+3] for i in range(0, len(shv)-2, 3)]
['abc', 'def']

(正如您在上面看到的,它必须是 len(shv)-(n-1) 才能使修剪工作。)

关于python - 返回按两个分组的字符串字母列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21713776/

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