如何加入列表中的细分

芝士小圆面包

我在其他地方找到了可以解决问题的不同答案,但是我不太清楚为什么我的代码无法正常工作。我想做的是获取一个字母字符列表,并加入前4,后4,后3等元素。我将在下面粘贴一个示例,以使其更加清楚。

如果给出以下列表:['A','B','C','D','E','F','G','H','I','J','K' ,“ L”,“ I”,“ M”,“ N”,“ O”,“ Q”,“ R”,“ S”,“ T”,“ U”,“ V”,“ W”,“ X','Y','Z']

我想合并元素,以便收到以下输出:

[“ ABCD”,“ EFGH”,“ IJKL”,“ IMNO”,“ QRST”,“ UVWX”,“ YZ”]

我以为自己已经找到了一个好的解决方案,但是似乎没有用。我试过的是:

x = 'ABCDEFGHIJKLIMNOQRSTUVWXYZ'
y = 4

def wrap(string, max_width):
    slist = [char for char in string]
    new = []
    for i in range(0, len(slist), max_width):
        new.append(''.join(slist[i:max_width]))
    return new

wrap(x, y)

我从中得到的输出是:

['ABCD', '', '', '', '', '', '']

如果有人可以帮助我确定问题所在并帮助我解决问题,我将不胜感激。就像我之前说过的,我在网上找到了其他答案,这些答案可以满足我的要求,但我真的很想弄清楚我在哪里出了错。

彼得·梅森

似乎在for循环中存在逻辑问题:

您试图在i:max_width之间添加项目。但是max_width始终为4,而当我> 4时,由于空字符串,因此不会返回任何项目。相反,我添加了max_width来表示分组大小始终相同:

x = "ABCDEFGHIJKLIMNOQRSTUVWXYZ"
y = 4

def wrap(string, max_width):
    slist = [char for char in string]
    new = []
    for i in range(0,len(slist),max_width):
        new.append(''.join(slist[i:(i+max_width)]))
    return new

print(wrap(x, y))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章