我想遍歷一個字串并每次捕獲 2 個專案,同時還通過可迭代的索引遞增。所以我想切片 2 個專案,但每次通過回圈將索引增加 1。我怎樣才能做到這一點?
我的字串 = '測驗字串'
期望的輸出 = te es st ts st tr ri in ng
我嘗試了以下方法來分割這兩個專案,但無法找出迭代索引的最佳方法
str1 = 'teststring'
i=0
while i<10:
i =1
str2=str1[0:2]
print(str2)
uj5u.com熱心網友回復:
這是一個可能的解決方案(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)
uj5u.com熱心網友回復:
通過使用串列理解,您可以在單行中做到這一點
s = 'teststring'
r = ' '.join([s[i:i 2] for i in range(len(s)-1)])
print(r)
uj5u.com熱心網友回復:
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']
uj5u.com熱心網友回復:
由于您嘗試在每次迭代中移動切片的起點和終點,因此您希望使用切片的索引 長度作為終點。
您應該在切片完成后進行迭代。這是對您的代碼進行最小更改的答案:
str1 = 'teststring'
i=0
while i<=len(str1)-2:
str2=str1[i:i 2]
i = 1
print(str2)
uj5u.com熱心網友回復:
我會使用 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/435239.html
