一、列表(list)
1、方法
reverse() 將列表內的元素逆序
sort() 將列表的元素排序,排序的前提是列表的元素是可比較的
count() count(a)返回列表元素a在列表中的出現次數
insert() insert(index,value)
extend() list.extend().list2 將乙個列表的所有元素新增到另乙個列表的末尾
pop() 類似於棧的彈出
例子》 a = ['a','b','c','d']
>>> a.reverse()
>>> a
['d', 'c', 'b', 'a']
>>> a.sort()
>>> a
['a', 'b', 'c', 'd']
>>> a.count('a')
1>>> a.insert(0,'w')
>>> a
['w', 'a', 'b', 'c', 'd']
>>> a
['w', 'a', 'b', 'c', 'd', 'q']
>>> a.pop()
'q'>>> a
['w', 'a', 'b', 'c', 'd']
>>> b = ['m','n']
>>> a.extend(b)
>>> a
['w', 'a', 'b', 'c', 'd', 'm', 'n']
#切片小應用
>>> s = '上海自來水來自海上'
>>>> s[::-1] #s的回文(即將s內的字元逆序)
'上海自來水來自海上'
2、列表推導式
l1 = [i for i in range(1,10)]
print(l1)
#生成乙個偶數的列表
l2 = [i for i in range(1,10) if i%2 == 0]
print(l2)
#生成乙個奇數的平方的數
l3 = [i * i for i in range(1,10) if i%2 == 1]
print(l3)
#匿名函式
>>> l4 = list(map(lambda x:x**2,range(5)))
>>> l4
[0, 1, 4, 9, 16]
#順便介紹一下map函式
#map()函式接收兩個引數,乙個是函式,乙個是iterable,
#map將傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回。
--------------------------------------
#!/usr/bin/env python3
defsquare
(x):
return x ** 2
a = list(map(square,range(5)))
print(a)
#[0,1,4,9,16]
--------------------------------------
二、元組(tuple):tuple和list非常類似,但是tuple一旦初始化就不能修改
1、方法
>>> l4
[0, 1, 4, 9, 16]
>>> a,b,c,d,e = tuple(l4)
>>> a
0>>> b
1>>> c
4>>> d
9>>> e
16#python divmod(a,b) 函式把除數和餘數運算結果結合起來,
#返回乙個包含商和餘數的元組(a // b, a % b)。
>>> divmod(3,1)
(3, 0)
>>> divmod(21,2)
(10, 1)
三、集合(set):集合是乙個無序不重複元素的集。基本功能包括關係測試和消除重複元素。
#大括號或 set() 函式可以用來建立集合。
#注意:想要建立空集合,你必須使用 set() 而不是 {}。後者用於建立空字典
>>> a = set('abracadabra')
>>> a
>>> b =
>>> b
>>> a | b #存在於a或b的字母
>>> a & b #a和b中都有的字母
>>> a ^ b #存在於a或b但不同時存在於a,b中的字母
>>> a - b #a有而b中沒有的字母
四、字典
字典是是無序的鍵值對(key:value)集合,同乙個字典內的鍵必須是互不相同的。
一對大括號 {} 建立乙個空字典。
初始化字典時,在大括號內放置一組逗號分隔的鍵:值對,這也是字典輸出的方式。
遍歷乙個字典,使用字典的 items() 方法。
>>> data =
>>> for x,y in data.items():
... print('{} uses {}'.format(x,y))
...kart_ uses debian
kushal uses fedora
jace uses mac
五、程式示例
/*
判斷學生成績是否達標的程式,要求輸入學生數量,以及各個學生物理、數學、歷史
三科的成績,如果總成績小於 120,程式列印 「failed」,否則列印 「passed」。
*/#!/usr/bin/env python
n = int(input("enter the number of students: "))
data = {} # 用來儲存資料的字典變數
subjects = ('physics', 'maths', 'history') # 所有科目
for i in range(0, n):
name = input('enter the name of the student {}: '.format(i + 1)) # 獲得學生名稱
marks =
for x in subjects:
# 獲得每一科的分數
data[name] = marks
for x, y in data.items():
total = sum(y)
print("{}'s total marks {}".format(x, total))
if total < 120:
print(x, "failed !")
else:
print(x, "passed !")
python資料結構之佇列
一 介紹 1 可以把列表當做佇列用,只是在佇列裡第一加入的元素,第乙個取出來。2 拿列表用作這樣的目的效率不高。在列表的最後新增或者彈出元素速度快,然而在列表裡插入或者從頭部彈出速度卻不快 因為所有其他的元素都得乙個乙個地移動 二 應用內建的佇列模組 from collections import ...
Python資料結構之排序
def bubble sort li 氣泡排序 for j in range len li 1 0,1 每次遍歷需要比較的次數,逐漸減小 for i in range 0 j 比較相鄰兩數,大的放右邊 if li i li i 1 li i li i 1 li i 1 li i def select...
Python資料結構之棧
容器 作為容器資料結構,它們保證存入的元素被儲存在容器裡,尚未明確刪除的元素總是可以訪問,而取出並刪除的元素就不再存在於容器中了 棧 棧主要用於在計算過程中儲存臨時的資料,這些資料是計算中發現或者產生的,在後面的計算中可能需要使用它們 棧是最簡單的快取結構,它支援資料項的儲存和訪問,不支援資料項之間...