这个代码要怎么理解,
class ReverseString(object):def reverse(self, chars):
if chars:
size = len(chars)
for i in range(size // 2):
chars, chars = chars, chars
return chars
chars, chars = chars, chars
加粗的代码要怎么理解,想来想去也想不明白怎么赋值,最终实现列表反转 本帖最后由 Twilight6 于 2020-6-23 13:26 编辑
简单理解嘛,就是把等号 = 右边的值 依次赋值给 等号 = 左边的值
而且等号左边是列表索引的元素,就达到互相替换位置的效果咯
chars, chars = chars, chars
就是同时把 chars第 i 个位置赋值上 chars 的第 size - 1 - i 位置参数的值
而 chars 赋值上之前chars 的 第 i 个位置参数的值嘛
这是一个互换
比如
首1尾1 互换
首2尾2 互换
首3尾3 互换
。。。
....... 本帖最后由 白白白白丶白 于 2020-6-23 13:30 编辑
wp231957 发表于 2020-6-23 13:24
这是一个互换
比如
首1尾1 互换
chars怎么是尾呢{:5_94:}尾不是chars[-1]吗。我怎么看他都是chars [ i ] 后面的那个元素 白白白白丶白 发表于 2020-6-23 13:28
chars怎么是尾呢尾不是chars[-1]吗。我怎么看他都是chars [ i ] 后面的那个元素
你随便举个例子,带入一下就晓得了,难道不是吗
比如长度为10
带入得:
0---9
1----8
2---7
3----6
4----5
over Twilight6 发表于 2020-6-23 13:24
简单理解嘛,就是把等号 = 右边的值 依次赋值给 等号 = 左边的值
而且等号左边是列表索引的元素, ...
这个我是知道的,size - 1 - i 怎么是代表尾呢,为啥我算是chars[ i ]后面那个元素 wp231957 发表于 2020-6-23 13:31
你随便举个例子,带入一下就晓得了,难道不是吗
比如长度为10
带入得:
{:9_221:}我他妈看错了,一直用size//2的值带进去想的,二比了 白白白白丶白 发表于 2020-6-23 13:32
这个我是知道的,size - 1 - i 怎么是代表尾呢,为啥我算是chars[ i ]后面那个元素
想明白了,脑袋昏了,带错值了 白白白白丶白 发表于 2020-6-23 13:35
我他妈看错了,一直用size//2的值带进去想的,二比了
size//2明显是循环次数吗 wp231957 发表于 2020-6-23 13:36
size//2明显是循环次数吗
是的, 白白白白丶白 发表于 2020-6-23 13:35
我他妈看错了,一直用size//2的值带进去想的,二比了
{:10_277:}少说脏话 白白白白丶白 发表于 2020-6-23 13:59
是的,
问题解决了就快点给解决你问题的人设置最佳吧~ 永恒的蓝色梦想 发表于 2020-6-23 14:30
少说脏话
了解{:9_227:}
页:
[1]