range運算元組和切片的區別

2021-10-05 16:46:39 字數 1090 閱讀 1609

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...