python從入門到入墳 三(呂萬友)

2021-08-13 23:13:26 字數 2306 閱讀 7463

上一節學習了字串的處理,其中也涉及到一些方法;等以後真正實用後再進行回顧。。今天繼續學習新的知識。

python 的三種資料儲存方式:tuple,list,dictionary ;

list 沒有什麼特殊的地方,可能如果有,則需要對二維list做下了解。

tuple   :

元組中只包含乙個元素時,需要在元素後面新增逗號,否則括號會被當作運算子使用:

首先是type();   如果你的**冗長或者你想判斷這個變數的屬性;你可以使用type(變數名)

eg:

tup1 = (1

,)print(type(tup1))

得到如下結果:

剛做了python關於二維陣列list的實驗:

lst1=[[0]*3]*4

lst2=lst1

lst1[0][1]=2

print (lst2)

輸出

[[0, 2, 0], [0, 2, 0], [0, 2, 0], [0, 2, 0]]

是不是覺得很奇怪,這裡跟python的淺拷貝有關。 不知道的小夥伴可以翻閱the python standard library 找到答案。

那麼如何進行list的二維定義和操作呢:

lst1=[[0]*3]*4 (定義了乙個淺拷貝的3行4列二維list)

list * n => list, list乘以n以後還是乙個 list, 只是對原list裡面的 元素 是淺拷貝了n份。[ [0] ] * 3, 裡面的元素是 [0], 這是乙個list,所以會存在淺拷貝之後指向同乙個list的問題。

[0] * 3 , 裡面的元素是 0, 是乙個 int ,不可變物件,淺拷貝沒問題

整個過程我們可以通過 id()方法來判斷是否是指向同乙個id

#!/usr/bin/python

# -*- coding:utf-8 -*-

lst1 = [[0] * 3] * 4

lst2 = lst1

lst1[0][1] = 2

print(id(lst2[0][0]),

id(lst2[1][1]),

id(lst2[2][2]))

print(id(lst2[0]),

id(lst2[1]),

id(lst2[2]))

輸出的結果為:

1399156160 1399156224 1399156160

3041599247752 3041599247752 3041599247752

我們可以看出 : int 是不可變物件; 因此 [0]*3指向的id是根據0這個int所對應的值來獲得的;當我們把lst1[0][1]=2時,我們可以發現id發生了變化,變為1399156224 ;而list* 4中的list是可變物件 :所以對應的id就是他的門牌號,不管房子裡怎麼裝修,門牌號是不變的。對於不可變物件的id,就類似於一條固定的街道的門牌號。你知道一號門牌號裡是a商品,如果你要b商品,你就得換個門牌號進去。

因此定義二維陣列的方式為  lst1=[([0]*3)for i in range(4)] 或者

lst1=[for i in range(4)]

接下來就是dictionary :

radiansdict.copy()

這個比較有意思,這個特意強調了下是淺複製。

radiansdict.copy()

dictionary  遍歷例子:

dict 

=fori,

j in

dict

.items

():print(i

,":\t",j

)

輸出:

name

:runoob

age:

7

python 字典 fromkeys() 函式用於建立乙個新字典.

字典是支援無限極巢狀的,如下面**:

citys

=,'河北'

:}

可以使用如下方法進行列出

for

i in

citys

['北京'

]:print(i

)

將列出如下結果:

朝陽

海淀昌平

懷柔密雲

for

i in

citys

['北京'

]['海淀'

]:print(i

)

輸出如下結果:

圓明園

蘇州街中關村

北京大學

python從入門到入墳(5)

函式是可重用的程式 塊,函式的作用,不僅可以實現 的復用,更能實現 的一致性 python函式的分類 內建函式 str len 等 標準庫函式 通過import語句導入庫,然後使用其中定義的函式。第三方函式 使用者自定義函式 函式的定義和呼叫 我們使用 def 來定義函式,然後就是乙個空格和函式名稱...

testlib h從入門到入墳

學了這麼久oi連個spj都不會寫真是慚愧啊。趁著沒退役趕緊學一波吧 我是直接暴力複製貼上的。然後扔到mingw的目錄裡 直接引用就好啦 引用testlib.h後,我們可以從三個地方讀入資料 inf 輸入檔案 ouf 選手輸出 ans 標準輸出 當然,肯定不能直接用scanf讀入,testlib裡內建...

Python 從入門到放棄(三)

2011 12 11 mon 13 58 直接建立 phonebook phonebook out 224 phonebook dict alice 1234 bob 2345 注意關鍵字不能是expression,不是 alice 而是alice phonebook out 228 或者通過鍵值對...