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