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共同...