如何在for循环中对一系列数字进行切片

2024-09-28 01:33:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个N长度的数字或数字串。然后我把它变成一个列表,在数字上迭代。我想将列表分成5位数的块,如下所示:

N = '1234567890'

slice1 = '12345'
slice2 = '23456'
slice3 = '34567'

等等。。。在

我很难为python找到这方面的代码示例,特别是切片和for循环。任何帮助都将不胜感激,谢谢。在


Tags: 代码示例列表for切片数字位数数字串
3条回答

就这么做吧

n = '1234567890'
for i in range(len(n)):
   print(n[i:i+5])

这应该能奏效。但我要说的是,很难相信你真的在网上搜索,因为这是一个经常被问到的问题。。。在

更新

如果要使用不同的切片,可以尝试以下操作:

^{pr2}$

所以这里发生的是:

  • 创建一个具有字符串大小的数组,并用None值填充它们
  • 你要检查绳子的剩余长度是否为5根
    • 如果我再检查下一个5片的话
    • 如果没有,则删除其余的None值并中断循环

首先,您需要了解N='1234567890'中的每个元素是如何被索引的。如果要访问"1",可以使用N[0]"2"与{}一起使用。以此类推直到N[9],等于"0"。在

你的目标是创造

slice1 = '12345' 
slice2 = '23456'
slice3 = '34567'

让我们来看看slice1,以及如何通过N访问这两个值

^{pr2}$

现在我们来看看列表切片。给出一个列表l。可以通过指定startend来选择它的一部分,这两个索引类似于l[start:end]。在

注意,l[start:end]将选择元素

l[start], l[start+1], ..., l[end-1]

是的。l[end]未被选中。所选内容将包括起始索引,但不包括结束索引。在

回到slice1示例,如何选择'12345'?从上面的讨论中,我们知道我们需要从0到4的索引。因此,我们需要将N[0:5]放在这里,因为正如前面提到的,N[5]不会以这种方式包含进来。在

根据这个实践,现在可以编写一个for循环来在一行中生成slice1slice2和{}。在

我们可以这样做

gap = 5
slices = []
for i in range(3):
    slices[i] = N[i:i+gap]
# slices will be ["12345", "23456", "34567"]

# or 
slice1 = N[0:5]
slice2 = N[1:6]
slice3 = N[2:7]

我们通过定义一个变量gap来实现这一点。起始索引和结束索引之间总是有5的间隔,因为我们需要的切片的长度是5。如果开始索引是i,那么结束索引应该是i + gap。我们一次增加一个,得到一个新的切片。在

请注意,在本例中,我只介绍一种符合您特定需要的列表切片方法。您可以在这个问题中找到更多用法Understanding Python's slice notation

您可以使用列表理解创建一个列表。在

N = '1234567890'

all_slices = [N[i:i+5] for i in range(len(N)-4)]

相关问题 更多 >

    热门问题