我一直在尝试使用循环从字符串中分割出两个字符,但它没有捕获两个字符,而是只捕获一个字符。
我试过:
input[i:i+1]
以及
input[i:(i+1)]
但两种方法都不管用。
如何使用变量进行切片?
完整的程序:
def StringTo2ByteList(input):
# converts data string to a byte list, written for ascii input only
rlist = []
for i in range(0, len(input), 2):
rlist.append(input[i:(i+1)])
return rlist
当我们执行从左到右的迭代时,基于中间位置的推理是有效的:
因为位置2在20/55和位置5在75/120之间
是的。
但当我们进行从右到左的迭代时,它不起作用:
我们必须把li[5:2:-1]看作:
从元素li[5](即120)到未混合元素li[2](即55)
也就是说
来自元素li[5](即120)仅包括li[3](即65)。
是的。
这使得危险的反向切割从最末端开始:
以及
是的。
如果这样想有困难,防止错误的方法是
是的。
注意,只要包含第一个元素,获得反向切片的唯一方法是
代表
切片值不是切片的开始和结束字符,而是切片的开始和结束点。如果要分割两个元素,则停止必须大于开始。
记住切片索引的一个好方法是将数字看作标记元素之间的位置。
例如,要分割
ba
,可以使用fruit[0:2]
。当这样想的时候,事情就不再是反直觉的了,你可以很容易地避免代码中的一个错误。相关问题 更多 >
编程相关推荐