python小結教學 python學習小結

2021-10-11 20:40:33 字數 3475 閱讀 9734

python具有非常豐富的資料型別,

包括字串,列表,元組,字典集合等,每種資料型別的特點都大一樣,好好利用他們

可以讓你的python程式設計變的非常輕鬆,要好好利用就應該充分了解他們的特點,下面對他們的特點進行一些總結。

python字串:

字串在python中是乙個單個字元的字串的序列,可以對字串進行切片連線等相關操作。

下面是關於python字串的一些文章:

python 字串替換

python字串連線

python列表:

列表是乙個任意資料型別組成的有序集合,有點像其它語言的陣列,如果用過其它語言的朋友相信對它不會陌生,列表的操作非常

豐富,可以用dir來檢視他自帶的方法。

下面是關於python列表的一些文章:

python列表

python列表操作方法

python元組:

python元組和列表一樣都是有序序列,所不同的是元組是不可變的型別,經常用在系統配置檔案裡,作為系統的配置資訊,比較安全和穩定,不容易輕易被改變。

下面是python元組的一些文章:

python 元組

python字典:

字典是python物件中唯一的對映的型別,和數學的對映的關係差不多,其它的語言也有大概的資料型別,自帶的方法也很多

下面是python字典的一些文章:

python 字典:

python 字典 新增

python集合:

python集合在其它的語言好像比較少見,做一些中間處理還是非常好的

下面是python集合的一些文章:

python 集合

下面是一些朋友總結的。

共同點:

1、它們都是py的核心型別,是py語言自身的一部分。

核心型別與非核心型別

多數核心型別可通過特定語法來生成其物件,比如"spam"就是建立字串型別的物件的表示式;

非核心型別需要內建函式來建立,比如檔案型別需要呼叫內建函式open()來建立。

類也可以理解成自定義的非核心型別。

2、邊界檢查都不允許越界索引

3、索引方法都使用

s = 'spam'

print s[0]

s = ['s', 'p', 'a', 'm']

print s[0]

s =

print s['name']

s = ('s', 'p', 'a', 'm')

print s[0]

4大部分都支援迭代的協議

不同點:

1、有序性

字串、列表、元組是序列,元組可以理解成不可變的列表

字典是對映

序列才有有序性,字典沒有可靠的左右順序

2、可變性

字串、元組(還有數字)具有不可變性,即賦值後對應儲存空間的內容不可變,除非這個物件被銷毀。

列表、字典具有可變性

s = 'spam'

s = 'z' + s[1:]

第一行的s的指向的記憶體空間(比如位址0x000123)儲存了字串'spam'

第二行的s「變」成了'zpam',但它只是重新指向了乙個儲存著'zpam'字串的記憶體位址,原來0x000123出開始的記憶體空間可能還是乙個'spam',直到系統來清理它。

3、序列操作

序列(字串、列表、元祖)支援,對映(字典)不支援

注意:序列操作生成的型別不變。

col = 'spam'

print col[1:]

#結果是pam

col = ['s', 'p', 'a', 'm']

print col[1:]

#結果是['p', 'a', 'm']

col = ('s', 'p', 'a', 'm')

print col[1:]

#結果是('p', 'a', 'm')

4、列表解析表示式

表示式中支援序列(字串、列表、元祖),貌似也支援對映(字典)。

注意:和序列操作不同的是,

列表解析表示式生成的只能是乙個列表;

double = [c * 2 for c in 'spam']

print double

結果為['ss', 'pp', 'aa', 'mm']

l1 = [1, 2, 3]

l2 = [4, 5, 6]

l3 = [(a + b) for (a,b) in zip(l1, l2)]

print l3

#結果為[5, 7, 9]

tup = (1, 2, 3)

double = [c * 2 for c in tup]

print double

#結果為[2, 4, 6]

a =

b = [i * 2 for i in a.items()]

print b

#結果為[('a','zw','a','zw'),('b','ww','b','ww')]

下面一段**似乎是列表解析表示式對字典的支援,對字典進行的迭代應該是對其keys的迭代,字典的items()、keys()、values()方法都是返回的列表,所以,這裡的for i in a最好寫成for i ina.keys(),效果等同。總之,可以不追究列表解析表示式到底支不支援字典,本質上,列表解析表示式就是個對列表使用了迴圈結構,並生成新的列表的方法。先這樣理解

a =

b = [i * 2 for i in a]

print b

#結果為['aa', 'bb']

複製**

5、巢狀

除了字串,列表、元組、字典可以相互多層次巢狀

#第一段

b = [1, 2, 3]

tup = (4, 5, b)

print tup[2]

#結果是[1, 2, 3]

b[0] = 'x'

print tup[2]

#結果是['x', 2, 3]

#第二段

b = '123'

tup = (4, 5, b)

print tup[2]

#結果是'123'

b = '***'

print tup[2]

#結果仍然是'123'

有上面兩段可以看出,巢狀與可變性是不衝突的。

tup = (4, 5, b)中所記憶、錄入的b是個變數指標,或者叫記憶體位址,是個數字。

第一段,b指向乙個列表,列表具有可變性,所以b[0] = 'x'的操作後,所以對元祖的索引能體現出變化;

第二段,b指向乙個字串,字串具有不可變性,所以b = '***'的操作後,b這個指標本身就改變了,重指向另一段記憶體空間,而tup元組中記憶的記憶體位址(那個曾經的b)所指空間並沒有變,還是字串'123'。

所以,不管是第一段還是第二段,元組tup始終保持不可變性,要變化也是其元素作為指標所指向記憶體的變化。

總結:python資料型別最重要的就是理解好可變性和不可變性,相信理解好了可以減少很多錯誤和少走一些彎路!

python小結 python小結

c python33新增到你的path 環境變數中,你可以在dos 視窗中 輸入以下命令 set path path c python33 id 方法的返回值就是物件的記憶體位址。在 行 首行 後插入至少一行特殊的注釋行來定義原始檔的編碼。coding encoding sys.modules 模組...

python起步變數教學

使用方法修改字串的大小寫 message welcome 之間是字串 print message message abc print message name yu wenfei print name.title title是首字母大寫 name yu wenfei print name.upper...

python教學筆記 python學習筆記(一)

1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...