python常用知識點 python 常用知識點

2021-10-19 21:25:21 字數 4016 閱讀 3933

1,字典get用法

如果key沒有值,返回乙個none

>>> dic =

>>> dic.get('k4')

>>> p = dic.get('k4')

>>> print p

none

get(『k4』,'k4')如果k4 沒有值可以指定返回值,如果有值,則返回原有值

>>> dic.get('k4','v4')

'v4'

>>> dic.get('k3','v4')

'v3'

>>> dic.get('k2','v4')

'v2'

>>> dic.get('k1','v4')

'v1'

2,字典的取值:

>>> dic.keys()

['k3', 'k2', 'k1']

>>> dic.values()

['v3', 'v2', 'v1']

>>> for k,v in dic.items():

... print k,v

k3 v3

k2 v2

k1 v1

>>> for k,v in dic.items():

... print k,v,

k3 v3 k2 v2 k1 v1

3,set

去除重複的元素。

t = set(['a','b','c'])

s = set(['a','b','c','d'])

集合支援一系列標準操作,包括並集、交集、差集和對稱差集,例如:

a = t | s # t 和 s的並集

>>> a = t | s

>>> a

set(['a', 'c', 'b', 'd'])

b = t & s # t 和 s的交集

>>> b = t & s

>>> b

set(['a', 'c', 'b'])

c = t – s # 求差集(項在t中,但不在s中)

>>> c = t - s

>>> c

set()

d = t ^ s # 對稱差集(項在t或s中,但不會同時出現在二者中)

基本操作:

t.add('x') # 新增一項

s.update([10,37,42]) # 在s中新增多項

4, input 輸入的字串可以使用json轉成字典 使用json.loads(),例如:

>>> import json

>>> s = raw_input()

#一點要是雙引號

>>> type(s)

>>> dic = json.loads(s)

>>> type(s)

>>> type(dic)

5, ordereddict,

使用dict時,key是無序的。在對dict做迭代時,我們無法確定key的順序。

如果要保持key的順序,可以用ordereddict:

注意,ordereddict的key會按照插入的順序排列,不是key本身排序:

>>> from collections import ordereddict

>>> t = dict([('a',1),('b',2),('c',3)])

>>> t

>>> s = ordereddict([('a',1),('b',2),('c',3)])

>>> s

ordereddict([('a', 1), ('b', 2), ('c', 3)])

6,counter

這是乙個計數器,統計字元出現的次數。

>>> from collections import counter

>>> c = counter()

>>> a = 'asdfdscdcdfasad'

>>> c = counter(c)

>>> c = counter(a)

>>> c

counter()

7,預設字典:使用default為字典設定預設值

>>> from collections import defaultdict

>>> l = defaultdict(list)

>>> print l

defaultdict(, {})

>>> print l

defaultdict(, )

>>> print l

defaultdict(, )

8.動態引數(函式)

>>> def show(*arg):

... print arg,type(arg)

>>> show(123,123)

(123, 123)

>>> def show(**arg):

... print arg,type(arg)

>>> show(n1=12,n2=123,n3=234)

內建函式map,fillter

>>> l = [11,22,33,44]

>>> newl = map(lambda x:x+100,l)# 也可以加函式map(函式名,l)

>>> newl

[111, 122, 133, 144]

>>> newl = map(lambda x:x+100,l)

>>> newl

[111, 122, 133, 144]

>>> def func(s):

... if s >133:

... return true

... else:

... return false

>>> n = filter(func,newl)

>>> n

[144]

zip的方法:

>>> l = [1,3,5,7]

>>> s = [2,4,6,8]

>>> k = zip(l ,s)

>>> k

[(1, 2), (3, 4), (5, 6), (7, 8)]

9,迭代器和生成器

定義:乙個函式呼叫時返回乙個迭代器,那這個函式就叫生成器(generater),如果函式中包含yield語法,那這個函式就變成生成器

def cash_cut(amount):

while amount >0:

amount -= 100

yield 100

print("擦,有來取錢了。。。敗家子")

atm = cash_cut(500)

print(type(atm))

print(atm.__next__())

print(atm.__next__())

print(atm.__next__())

輸出:擦,有來取錢了。。。敗家子

擦,有來取錢了。。。敗家子

yield單執行緒非同步例項:

importtimedefcustomer(name):print('%s準備吃包子了'%name)whiletrue:

baozi= yield

print('包子[%s]來了,被%s給吃了'%(baozi,name))defproduct():

c1= customer('w')

c2= customer('b')

c1.__next__()

c2.__next__()print('我要開始做包子了,你們先等會!')for i in range(10):

time.sleep(1)print('我做了兩個包子!')

c1.send(i)

c2.send(i)

product()

10.裝飾器例子

def login(func):

def inner(arg):

print('please user verify....')

func(arg)

return inner

@login

def tv(name):

print('welcome [%s] look at tv' %name)

tv('www')

mysql常用知識點 mysql 常用知識點。

mysql u root p show databases show tables select from abc order by id limit 0,10 create database bbb exit mysqldump u root p game home backup.sql mysq...

python大一知識點 python知識點複習

放假歸來,這幾天複習了一下好久不用的python,總結了一下知識點。語法基礎tuple與list的異同都由多個元素組成 tuple由 組成,list由組成 tuple不可變,list可變 tuple表示的是一種結構,而list表示的是多個事物的集合 tuple操作比list快 字串用法要點 轉義符和...

shell常用知識點

0 shell中if,while的條件語句怎麼寫 test和 字串比較 數字比較 g,l,e,n,q,t的組合 greater than,less than,equil,not equil,greater equil,less equil 1 shell的字串 str hello str hello...