Python待鞏固的知識點2(資料結構)

2021-10-09 06:00:55 字數 4834 閱讀 7878

1.將列表作為棧和佇列

棧:後進先出(洗盤子)

>>

> a =[1

,2,3

,4,5

,6]>>

> a[1

,2,3

,4,5

,6]>>

> a.pop()6

>>

> a.pop()5

>>

> a.pop()4

>>

> a.pop()3

>>

> a[1

,2]>>34)

>>

> a[1

,2,34

]

上面的**中我們使用了乙個新方法 pop()。傳入乙個引數 i 即 pop(i) 會將第 i 個元素彈出。

佇列:先進先出(排隊)

>>

> a =[1

,2,3

,4,5

]>>1)

>>

> a[1

,2,3

,4,5

,1]>>

> a.pop(0)

1>>

> a.pop(0)

2>>

> a[3

,4,5

,1]

我們使用 a.pop(0) 彈出列表中第乙個元素。

2.列表推導式

squares =

[x**

2for x in

range(10

)]

等同於

>>

> squares =

>>

>

for x in

range(10

):..

2)..

.>>

> squares[0

,1,4

,9,16

,25,36

,49,64

,81]

3.通過內建函式type()你可以知道任意變數的資料型別。元組型別資料如果只有乙個數值的話需要在後面接乙個逗號,如

>>

> a =

(123

)>>

> a

123>>

>

type

(a)<

class

'int'

>

>>

> a =

(123,)

>>

> b =

321,

>>

> a

(123,)

>>

> b

(321,)

>>

>

type

(a)<

class

'tuple'

>

>>

>

type

(b)<

class

'tuple'

>

4.集合的相關概念

大括號或set()函式可以用來建立集合。注意:想要建立空集合,你必須使用 set() 而不是 {}。後者用於建立空字典,我們在下一節中介紹的一種資料結構。

>>

> basket =

>>

>

print

(basket)

# 你可以看到重複的元素被去除

>>

>

'orange'

in basket

true

>>

>

'crabgrass'

in basket

false

>>

>

# 演示對兩個單詞中的字母進行集合操作..

.>>

> a =

set(

'abracadabra'

)>>

> b =

set(

'alacazam'

)>>

> a # a 去重後的字母

>>

> a - b # a 有而 b 沒有的字母

>>

> a | b # 存在於 a 或 b 的字母

>>

> a & b # a 和 b 都有的字母

>>

> a ^ b # 存在於 a 或 b 但不同時存在的字母

從集合中新增或彈出元素:

>>

> a =

>>

> a.pop(

)# pop 方法隨機刪除乙個元素並列印

'h'>>

> a.add(

'c')

>>

> a

5.字典

建立新的鍵值對很簡單:

>>

> data[

'parthan']=

'ubuntu'

>>

> data

使用del關鍵字刪除任意指定的鍵值對:

>>

>

del data[

'kushal'

]>>

> data

如果你想要遍歷乙個字典,使用字典的items()方法。

>>

> data

>>

>

for x, y in data.items():

...print

("{} uses {}"

.format

(x, y)).

..kushal uses fedora

jace uses mac

kart_ uses debian

parthan uses ubuntu

許多時候我們需要往字典中的元素新增資料,我們首先要判斷這個元素是否存在,不存在則建立乙個預設值。如果在迴圈裡執行這個操作,每次迭代都需要判斷一次,降低程式效能。

我們可以使用dict.setdefault(key, default)更有效率的完成這個事情。

>>

> data =

>>

> data.setdefault(

'names',[

])'ruby'

)>>

> data

>>

> data.setdefault(

'names',[

])'python'

)>>

> data

>>

> data.setdefault(

'names',[

])'c')

>>

> data

試圖索引乙個不存在的鍵將會丟擲乙個 keyerror 錯誤。我們可以使用 dict.get(key, default) 來索引鍵,如果鍵不存在,那麼返回指定的 default 值。

>>

> data[

'foo'

]traceback (most recent call last)

:file ""

, line 1,in

keyerror:

'foo'

>>

> data.get(

'foo',0

)0

如果你想要在遍歷列表(或任何序列型別)的同時獲得元素索引值,你可以使用enumerate()

>>

>

for i, j in

enumerate([

'a',

'b',

'c']):

...print

(i, j)..

.0 a

1 b2 c

你也許需要同時遍歷兩個序列型別,你可以使用 zip() 函式。

>>

> a =

['pradeepto'

,'kushal'

]>>

> b =

['opensuse'

,'fedora'

]>>

>

for x, y in

zip(a, b):.

..print

("{} uses {}"

.format

(x, y)).

..pradeepto uses opensuse

kushal uses fedora

關於一行輸入多個資料的問題。。。

python如何實現一行輸入多個值呢?

例如 讀入兩個數10 23到a b 中。

很簡單 a,b = input().split() 即可。

當然,a,b中儲存的是字串。

如果要求a,b中儲存的是整數的話可以這樣寫

a,b = map(int,input().split())

練習鞏固知識點

強制型別轉換 char a int b float c double d 執行語句 c a b c d 後,變數c的資料型別是 由算術表示式表示為c語言的表示式 31.6 8 1 7 12 華氏度和攝氏度的關係是 c 5 f 32 9 c 5 f 32 9 自增運算子 為什麼 結果是12呢?incl...

迴圈知識點鞏固

迴圈結構的程式設計是面向過程的程式設計課程的核心部分,掌握好迴圈結構的程式設計技術對學好此類課程至關重要。小白已經經歷了利用計算機使用和掌握了程式設計中選擇結構,感悟了程式設計是其中的關鍵環節,對程式設計已經產生一定興趣,但由於在程式設計過程中,會出現重複的進行一些相同功能語句的編寫 為了讓程式設計...

前端基礎鞏固知識點一

一 html和css ie trident核心 firefox gecko核心 safari webkit核心 opera 以前是presto核心,opera現已改用google chrome的blink核心 chrome blink 基於webkit,google與opera software共同...