我的python學習筆記

2022-08-10 06:54:13 字數 2887 閱讀 9503

(此文是在實際工程中遇到的一些小問題,給予解決和整理。解決方法大多來自網上零散的文章。)

1——如下**,

a=[1,2,3]

b=a

b也是[1,2,3]了,接著

a[0]=4a[1]=5a[2]=6
此時a變成[4,5,6]了,再看b,a變了之後沒有對b進行新的引用,但b還是變了,自動的也變成[4,5,6]了。

除非對a進行新的賦值,比如

>>>a=[7,8,9]

>>>a

>>>[7,8,9]

>>>b

>>>[4,5,6]

這是因為列表被定義為是可變型別,相對的是不可變型別。如python文件所示:

可以看到,不可變型別只有:數字,字串,元組。其它的型別都是可以在名字不變的情況下,對其內容進行修改,並且會影響到其他引用它的變數。

再比如:

>>>a=[1]

>>>c=

[[1]]

>>>c

[[1,2]]

1.1——父作用域屬性不會影響到子作用域。

>>> a =0

>>> a = [1]

>>> c =(a)

>>>type(c)

list

>>> c = (a, 1)

>>>type(c)

tuple

>>>c

([1, 2], 1)

即元組不可變,但其內部的可變型別,如列表,可以隨時改變

2——當你需要引用乙個陣列的其中一部分,而此陣列的長度是不確定的,導致你有可能引用的範圍超過了它的長度,可以在引用範圍中加上乙個冒號:

a_list =             #此兩行**是正確的,不會報錯

b_list = a_list[-1:] #比如-1後面的冒號

此時如果使用b_list=a_list[-1],程式會報錯,「indexerror: list index out of range」;再比如

a_list 的長度隨著程式的執行會變化,有可能是長3,也有可能變成5個元素,但必須保證b_list不能包含a_list的後面四個元素,

此時可以使用

b_list = a_list[:-4]

這樣,即使a_list==[1,2,3],b_list也能成功引用,結果是b_list== 。

3——引數前加上單星號或雙星號

4——改變物件值的方法是沒有返回值的。比如

>>list_2 =list_1.reverse()

>>print

(type(list_2))

>>nonetype

>>

>>list_2 =list_1.remove(n)

>>print

(type(list_2))

>>nonetype

>>

5——max函式可加入引數key,

d = 

max(d)

>>

6--json會把字典的數字鍵改為str

7____python中有兩個判斷語句:==,is

不能混用,==用來比較變數的值是否相等,is 用來判斷變數的記憶體位址是否一樣

tuple_1 = ("a"

,)tuple_2 = ("a"

,)print("

tuple_1 == tuple_2:\n

", tuple_1 ==tuple_2)

print("

id(tuple_1) == id(tuple_2):\n

", id(tuple_1) ==id(tuple_2))

print("

tuple_1 is tuple_2:\n

", tuple_1 is

tuple_2)

print("

tuple_1[0] == tuple_1[0]:\n

", tuple_1[0] ==tuple_1[0])

print("

id(tuple_1[0]) == id(tuple_2[0]):\n

", id(tuple_1[0]) ==id(tuple_2[0]))

print("

tuple_1[0] is tuple_1[0]:\n

", tuple_1[0] is tuple_1[0])

輸出:

tuple_1 == tuple_2:

true

id(tuple_1) == id(tuple_2):

false

tuple_1 is tuple_2:

false

tuple_1[0] == tuple_1[0]:

true

id(tuple_1[0]) == id(tuple_2[0]):

true

tuple_1[0] is tuple_1[0]:

true

可以這麼說:

is==的子集。

參考:

我的python學習筆記

五 運算子 六 字串 七 列表 八 順序執行 數值型別 字串 str 列表 list 元組 tuple 集合型別 set 字典型別 dict 布林型別 bool 型別 整數可以用字串型別佔位,反之不可。例 name 小t age 18 男 print s的年齡是 d,性別為 s name,age,s...

我的python學習筆記1

createdmd5listcode.py 沒有系統的學習過一門程式語言,即使學校學習時也不過聽說過而已。工作之後越發感覺到coding的強大,遂又拾起來開始漫漫學習之路。朋友推薦學習python,所以就從python開始。工作上剛好可以提供一些需求,來幫助我確定乙個短期的目標,以實現一些工作上的便...

我的python學習筆記2

在工作裡,有乙個檔案裡的漢字是多餘的,由於資料量很大 幾千甚至上萬 行資料,並且不一定每行都有漢字,所以想到了用python處理剔除行內漢字。由於資料是每行用逗號 分隔的,且漢字只會出現在固定的位置,所以就想到了用csv標準模組處理。由於csv.reader讀取到的結果是乙個list,然後再提出漢字...