Python tips(
(此文是在實際工程中遇到的一些小問題,給予解決和整理。解決方法大多來自網上零散的文章。有一個系統化的Python問題解決方案,來自《Python 3 學習筆記》雨痕著,其中對Python的工作細節進行了一些整理,很有參考價值。)
1——如下代碼,
a=[1,2,3] b=ab也是[1,2,3]了,接著
a[0]=4 a[1]=5 a[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文檔所示:
12
3
可以看到,不可變類型只有:數字,字符串,元組。其它的類型都是可以在名字不變的情況下,對其內容進行修改,并且會影響到其他引用它的變量。
?再比如:
>>>a=[1] >>>c=[] >>>c.append(a)>>>c [[1]] >>>a.append(2) >>>c [[1,2]]
?1.1——父作用域屬性不會影響到子作用域。
>>> a = 0 >>> a = [1] >>> c = (a) >>> type(c) list >>> c = (a, 1) >>> type(c) tuple >>> a.append(2) >>> 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——
?
轉載于:https://www.cnblogs.com/oler/p/9528933.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Python tips(的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OTA江湖浪潮再起,世界邦的出境定制自由
- 下一篇: 【从零开始自制CPU之学习篇03】锁存器