关于python最新版25讲问答题4的疑惑
本帖最后由 一阵三十六 于 2021-9-7 22:53 编辑要求是:
请将下面 matrix 矩阵反向展开,即使得最终的结果为 。
matrix = [,
,
]
给的参考答案是:
>>> flatten = [::-1]
>>> flatten
然后我试着用 for循环 套一下这个答案。
为什么这两个得到的结果不一样呢?
而且按我自己不成熟的理解我认为也是循环的那个结果。
希望大佬讲一下这个答案的逻辑和我思考方式的误区。 本帖最后由 傻眼貓咪 于 2021-9-5 18:10 编辑
matrix = [
,
,
]
res = for j in i[::-1]] # 這裡有 2 個循環
print(res)
# 先從 matrix 最後一個元素 作循環
# 再從元素裡面最後的數字以逆方式作循環輸出 9 -> 8 -> 7
傻眼貓咪 发表于 2021-9-5 18:01
你好,我明白了你的思路。
但我想问得是:
在参考答案
flatten = [::-1]
中,
第一步 row =
col 依次取 3,2,1
第二步 row =
col 依次取 6,5,4
第三步 row =
col 依次取9,8,7
那么得到的列表为什么是
而不是 本帖最后由 傻眼貓咪 于 2021-9-5 20:09 编辑
一阵三十六 发表于 2021-9-5 18:48
你好,我明白了你的思路。
但我想问得是:
在参考答案
思路相同,只是參考答案是先取值後排序,如:
步驟 1:
取得所有值
步驟 2:
再倒過來
# 注:[::-1] 就是前後對調,如:[::-1] ->
而我是先排序後取值
[::] 這是很好用的操作符
不單只是用在列表,所有只要能索引訪問的表,都能用這個符,如下:
能用:列表(list),元組(tuple),字符串(string)
不能用:集合(set),字典(dictionary)
含義與用法,如下:
[::] = [開始 : 結束 : 自定訪問方式]
開始:表示第一個被訪問的值的索引(index)位置,默認為 0
結束:表示最後一個被訪問的值的索引(index)位置,默認為最後一個位置+1(注:不包括結束位置本身)
自定訪問方式:正整數為從前面開始訪問,負整數為從後面開始訪問,數字表示下一個位置是現在的位置後面第幾位,默認為 1,如:[::2] = (注:1 後第二位是 3,3後第二位是5)
傻眼貓咪 发表于 2021-9-5 19:39
思路相同,只是參考答案是先取值後排序,如:
步驟 1:
取得所有值
谢谢,我现在才看见那个[::-1]在最外面。感谢{:10_257:}
页:
[1]