【发布时间】:2021-02-06 11:24:23
【问题描述】:
我需要将一个字符串分成大小不等的块,也就是说,如果在 for 循环中我满足某个条件,那么该块应该具有特定的长度,否则具有不同的长度。基本上我需要创建一个二维数组(列表),我知道行数但不知道列数,因为字符串的长度是未知的。我尝试了各种谷歌搜索方法。这是我自己尝试过的。
a = [1,2,3,4,5,6,7,8]
b = []
c=[]
def divide_chunks(l):
# looping till length l
for i in range(0, len(l)):
j = 0
if(i%2==0):
while(j<4 and i<=len(l)):
b.append(l.pop())
i = i+1
else:
while(j<2 and i<=len(l)):
b.append(l.pop())
i = i+1
c.append(b)
我面临的问题是每个块中的数字或让我们说字符串的单词重叠。例如其中一个输出是
[[8, 7, 6, 5, 4, 3, 2], [8, 7, 6, 5, 4, 3, 2], [8, 7, 6, 5, 4, 3, 2 ], [8, 7, 6, 5, 4, 3, 2], [8, 7, 6, 5, 4, 3, 2], [8, 7, 6, 5, 4, 3, 2], [8, 7, 6, 5, 4, 3, 2], [8, 7, 6, 5, 4, 3, 2]]
所以我想实现类似 if string is markisgoodboy。然后对于第一行,它将采用“mark”第二行“is”和第三行“good”,第四行“bo”和最后一行“y”。请注意,它是行明智的。行的长度将作为每个方法调用的参数提供。如何解决? 谢谢:)
【问题讨论】:
-
也许是我,但我不明白你是否要拆分字符串或列表,拆分条件,存储位置,条件何时适用,何时不适用,以及如何最后两个示例(
[8, 7, 6, 5, 4, 3, 2]和markisgoodboy)与该问题有关。但除此之外…… -
@Mr.T 逻辑还是一样的吧?不管是字符串还是列表,我仍然会以我相信的方式循环遍历它。因此,如果我知道行数,那么我可以在 [0,0] 行中存储 4 个元素,在第一行中存储一个元素,第二行中再存储 4 个元素。所以 i%2 == 0 将是 oth 和 2 等等。如果您只是将字符串写成 4 行,例如 M a r k one below other ,那么这就是我想说的。谢谢你:)
-
我们如何知道第 0 行有 4 个元素等?这些信息(标记似乎是@987654324@)存储在哪里?还是在列表/字符串用完之前总是 4-2?你的问题中没有提到这一点。关于列表或字符串 - 有些方法适用于两者,但其他方法仅适用于其中一个。
-
@Mr.T 对于每个方法调用,行的长度都是固定的,或者你可以说我知道行的长度,所以现在让我们将其视为 4。现在有多少字在后续行中将基于行数,所以让我们说类似 len(rows) - 2 。但现在让我们考虑 2。我们可以使它对 string 和 int list 通用吗?如果没有,让我们现在就为字符串做吧
标签: python python-3.x string list