python的基礎由潛入深的理解,具體詳解內容來自**
list和tuple的最大區別是:list是可變型別,tuple是不可變型別
# list和tuple都有切片操作,
l =[
'michael'
,'sarah'
,'tracy'
,'bob'
,'jack'
]# 取前三個元素l[0
:3]l[
:3]# 取最後乙個l[-
1]# 前四個, 每兩個取乙個l[0
:4:2
]# 後三個元素l[-
3:]
在python中迭代使用關鍵字為 for 迴圈,其內部封裝了next()和iter() 方法
# 只要是可迭代物件,都可以用for迴圈進行迭代, 資料型別是 tuple還是list
for i in
'anc'
:print
(i)for i in[1
,2,3
,4]:
print
(i)# 判斷乙個物件是否可迭代使用 collections
from collections import iterable
isinstance
('abc'
, iterable)
# true
isinstance
([a, b]
, iterable)
# true
isinstance(12
, iterable)
# false
# 一般的列表生成式
「x*x for x in
range(10
)]#帶有 if的判斷語局的列表生成式
「x for x in
range
(100
)if x%2==
0]# if else 的判斷語句,因為列表推到式的for迴圈後一定要有乙個結果,所以列表推到式的if else語句放在for前面
「 x*x if x%2==
0else
none
for x in
range
(100)]
# 多層巢狀的for迴圈, 生成的是乙個 n*m的陣列
「 m +n for m in
'abc'
for n in
'xyz'
]
g =
(m for i in
range
(100))
# g就是生成器
# 可以通過next()列印要列印的資料
next
(g)next
(g)# 到最後會丟擲 stopiteration 的異常,所以我們對生成器一般使用for迴圈進行操作
for i in g:
print
(i)
# 對於乙個函式,如果有yield關鍵字,就是乙個生成器
deffunc()
print
('stup1'
)yield
1print
('stup2'
)yield
2a = func(
)next
(a)
# 可以通過 collection.iteration 判斷是否是迭代器
from collection import iteration
isinstance([
], iteration)
# false
isinstance((
), iteration)
# false
isinstance
((i in
for rnage(10)
, iteration)
# true
# 判斷是否是可迭代 iterable
from collection import iterable
isinstance([
], iterable)
# true
isinstance
('abc'
, iterable)
# true
isinstance
(123
, iterable)
# false
# map() 可以接收多個引數, 乙個是函式名f,其他的是可迭代物件, 返回的結果是乙個迭代器iterator
deffunc
(x):
return x*x
si =
map(func,(1
,2,3
)print
(next
(si)
)# 1
print
(next
(si)
)# 4
deffunc2
(x,y)
:return x*y
si2 =
map(func2,(1
,3,5
),(2
,4,6
))print
(next
(si2)
)# 2
print
(next
(si2)
)# 12
print
(next
(si2)
)# 30
# filter() 第乙個引數也是接收函式,後面接收的是可迭代物件, 把返回true的值返回, 返回的也是乙個迭代器iterator
defnot_empty
(s):
return s and s.strip(
)list
(filter
(not_empty,
['a',''
,'b'
,none
,'c'
,' '])
)# 結果: ['a', 'b', 'c']
# sorted()可以比較兩個值的大小,如果是比較非資料,則沒有意義,我們可以通過函式進行比較出來
sorted([
36,5,
-12,9
,-21]
)# 按絕對值進行比較
sorted([
36,5,
-12,9
,-21]
, key=
abs) # [5, 9, -12, -21, 36]
sorted([
'bob'
,'about'
,'zoo'
,'credit'
], key=
str.lower)
#'about', 'bob', 'credit', 'zoo']
# sortd的key也可以傳入函式,使用函式的結果來進行排序
# 按成績高低來排序
l =[
('bob',75
),('adam',92
),('bart',66
),('lisa',88
)]defby_score
(t)return t[1]
sort(l, by_score)
# [('bart', 66), ('bob', 75), ('lisa', 88), ('adam', 92)]
Python入門知識總結(一)
1 python注釋 單行注釋 開頭 多行注釋選中內容ctrl 快捷鍵 注釋 print hello world 注釋2 注釋3 2 不適用 而使用縮進來表示同乙個 塊 if true print true else print false 下列 塊因為縮排不一致會導致錯誤 if true prin...
python入門知識
哈嘍,小夥伴們,今天跟大家分享一下python的一些基礎知識 首先,自我介紹一下,我呢,是一名python初學者,現在的知識儲存量不夠,所以,只能分享一些我所知道的關於python的知識.以後也會持續分享,希望各位小夥伴能夠喜歡 一 python的輸出方式 首先,介紹一下python的輸出方式,主要...
python入門知識
import random player input 請輸入 剪刀 0 石頭 1 布 2 player int player 產生隨機整數 0 1 2 中的某乙個 computer random.randint 0,2 用來進行測試 print player d,computer d player,...