python學習小結

2021-09-06 00:06:13 字數 3535 閱讀 2177

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小結教學 python學習小結

python具有非常豐富的資料型別,包括字串,列表,元組,字典集合等,每種資料型別的特點都大一樣,好好利用他們 可以讓你的python程式設計變的非常輕鬆,要好好利用就應該充分了解他們的特點,下面對他們的特點進行一些總結。python字串 字串在python中是乙個單個字元的字串的序列,可以對字串進...

python學習小結

python學習了半個月了,現在將其知識點羅列一下 一對python指令碼語言的認識 直觀上面來講,在語法和物件的概念上面python跟c 很像,作為指令碼語言,它又具備簡單便捷的特點,尤其體現在對文字資料的處理上面,簡單的幾行 就能完成c語言幾十行 的功能。二 python安裝和除錯 window...

python學習小結

eval 功能 將字串當成有效的表示式來求值,並返回計算結果 str eval 12 6 print str print type str len 功能 返回字串的長度,按照字元的個數計算,空格也算,不是按記憶體算的 print len asdf ghj lower 功能 將字串中的所有 大寫字母 ...