(此文是在實際工程中遇到的一些小問題,給予解決和整理。解決方法大多來自網上零散的文章。)
1——如下**,
a=[1,2,3]b也是[1,2,3]了,接著b=a
a[0]=4a[1]=5a[2]=6此時a變成[4,5,6]了,再看b,a變了之後沒有對b進行新的引用,但b還是變了,自動的也變成[4,5,6]了。
除非對a進行新的賦值,比如
>>>a=[7,8,9]這是因為列表被定義為是可變型別,相對的是不可變型別。如python文件所示:>>>a
>>>[7,8,9]
>>>b
>>>[4,5,6]
可以看到,不可變型別只有:數字,字串,元組。其它的型別都是可以在名字不變的情況下,對其內容進行修改,並且會影響到其他引用它的變數。
再比如:
>>>a=[1]1.1——父作用域屬性不會影響到子作用域。>>>c=
[[1]]
>>>c
[[1,2]]
>>> 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],程式會報錯,「indexerror: list index out of range」;再比如b_list = a_list[-1:] #比如-1後面的冒號
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()(type(list_2))
>>nonetype
>>5——max函式可加入引數key,>>list_2 =list_1.remove(n)
(type(list_2))
>>nonetype
>>
d =6--json會把字典的數字鍵改為strmax(d)
>>
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,然後再提出漢字...