如何在 Python 循环中递增索引
How to increment index in Python loop
我想遍历一个字符串并每次捕获 2 个项目,同时还通过 iterable 的索引递增。所以我想切片 2 个项目,但每次循环时将索引增加 1。我该怎么做?
my_string = 'teststring'
期望的输出=
特
是
英石
TS
英石
特
里
在
ng
我尝试了以下方法来对这两个项目进行切片,但无法找出迭代索引的最佳方法
str1 = 'teststring'
i=0
while i<10:
i +=1
str2=str1[0:2]
print(str2)
这是一个可能的解决方案(s
是您的字符串):
for j in range(len(s) - 1):
print(s[j:j + 2])
另一个:
for c1, c2 in zip(s[:-1], s[1:]):
print(c1 + c2)
str1 = 'teststring'
result = []
for i in range(len(str1) - 1):
result.append(str1[i:i + 2])
print(result)
输出
['te', 'es', 'st', 'ts', 'st', 'tr', 'ri', 'in', 'ng']
由于您试图在每次迭代中同时移动切片的起点和终点,因此您希望使用切片的索引+长度作为终点。
你应该在切片完成后进行迭代。这是对您的代码进行最少更改的答案:
str1 = 'teststring'
i=0
while i<=len(str1)-2:
str2=str1[i:i+2]
i += 1
print(str2)
我会使用 for 循环而不是 while 循环,如下所示:
def strangeSlice(string):
out = ""
for i in range(len(string)-1):
out += string[i:i+2]
if i != len(string)-2:
out += " "
print(out)
return out
def main():
strangeSlice("teststring")
main() #you need to call the main function to run
通过使用 list comprehension,您可以在 one-liner
中完成此操作
s = 'teststring'
r = ' '.join([s[i:i+2] for i in range(len(s)-1)])
print(r)
我想遍历一个字符串并每次捕获 2 个项目,同时还通过 iterable 的索引递增。所以我想切片 2 个项目,但每次循环时将索引增加 1。我该怎么做?
my_string = 'teststring'
期望的输出= 特 是 英石 TS 英石 特 里 在 ng
我尝试了以下方法来对这两个项目进行切片,但无法找出迭代索引的最佳方法
str1 = 'teststring'
i=0
while i<10:
i +=1
str2=str1[0:2]
print(str2)
这是一个可能的解决方案(s
是您的字符串):
for j in range(len(s) - 1):
print(s[j:j + 2])
另一个:
for c1, c2 in zip(s[:-1], s[1:]):
print(c1 + c2)
str1 = 'teststring'
result = []
for i in range(len(str1) - 1):
result.append(str1[i:i + 2])
print(result)
输出
['te', 'es', 'st', 'ts', 'st', 'tr', 'ri', 'in', 'ng']
由于您试图在每次迭代中同时移动切片的起点和终点,因此您希望使用切片的索引+长度作为终点。
你应该在切片完成后进行迭代。这是对您的代码进行最少更改的答案:
str1 = 'teststring'
i=0
while i<=len(str1)-2:
str2=str1[i:i+2]
i += 1
print(str2)
我会使用 for 循环而不是 while 循环,如下所示:
def strangeSlice(string):
out = ""
for i in range(len(string)-1):
out += string[i:i+2]
if i != len(string)-2:
out += " "
print(out)
return out
def main():
strangeSlice("teststring")
main() #you need to call the main function to run
通过使用 list comprehension,您可以在 one-liner
中完成此操作s = 'teststring'
r = ' '.join([s[i:i+2] for i in range(len(s)-1)])
print(r)