1.首先需要理解深、淺拷貝:
2.在使用range的時候總是不能很好把握value的值,用乙個示例理解操作引用型別和值型別得區別。(同樣的**只有陣列和切片的區別)
示例一:
func
main()
for i, v :=
range a
fmt.
println
("v"
, v)
} fmt.
println
("a"
, a)
}
示例一結果:
&v 0xc0000a0068
&a 0xc00009e128
v 1&v 0xc0000a0068
v 200
&v 0xc0000a0068
v 300
a [1
200300
]
示例二:(只是修改了a的型別)
func
main()
for i, v :=
range a
fmt.
println
("v"
, v)
} fmt.
println
("a"
, a)
}
示例二結果:
&v 0xc0000120a0
&a 0xc00000a408
v 1&v 0xc0000120a0
v 2&v 0xc0000120a0
v 3a [
1200
300]
仔細比較一下兩次列印結果可以得出結論。
結論:當使用range操作引用型別的時候(slice、map),遍歷物件(示例中的a)的改變都會影響value(示例中的v)的值。(淺拷貝)
反之,當使用range操作值型別的時候(array、int、string、struct、float,bool),遍歷物件的改變(示例中的a)的改變不會影響value(示例中的v)的值。(深拷貝)
numpy運算元組索引和切片
和列表 字串一樣操作即可 一維陣列 a numpy.arange 10,30 print a 一維陣列索引 print a 2 陣列中的第三個元素 print a 2 陣列中的倒數第二個元素 一維陣列切片 print a 5 10 從第六個開始到第11個 print a 1 10 2 從第二個開始到...
range和xrange的區別
range 函式說明 range start,stop step 根據start與stop指定的範圍以及step設定的步長,生成乙個序列。range示例 range 5 0,1,2,3,4 range 1 5 1,2,3,4 range 0,7,2 0,2,4,6 xrange 函式說明 用法與ra...
xrange和range的區別
內建函式range 返回乙個list xrange 返回乙個xrange物件,xrange物件是乙個generator,而且是乙個sequence python type range 10 list type xrange 10 xrange dir xrange class delattr doc...