使用python更高效

2021-09-25 13:03:47 字數 2063 閱讀 1934

# 1.判斷字典key是否存在

# in的處理速度更快,has_key方法在python3被移除

def has_dict_key():

d =

# bad:

if d.has_key('name'):

d.get('name')

# good

if 'name' in d:

d.get('name')

# 2.使用git獲取字典的值

# 使用d[x]訪問元素,如果key不存在報keyerror錯誤

def get_dict_value():

d =

# bad

if 'name' in d:

print(d['hello'])

else:

print('default')

# good

print(d.get("name", "default"))

# 3用setdefault為字典中不存在的key設定預設值

"""setdefault 的作用是:

如果 key 存在於字典中,那麼直接返回對應的值,等效於 get 方法

如果 key 不存在字典中,則會用 setdefault 中的第二個引數作為該 key 的值,再返回該值。

"""def set_dict_default():

data = [

("animal", "bear"),

("animal", "duck"),

("plant", "cactus"),

("vehicle", "speed boat"),

("vehicle", "school bus")

]groups = {}

for (key, value) in data:

print groups

# 用defaultdict初始化字典物件

def default_dict():

from collections import defaultdict

data = [

("animal", "bear"),

("animal", "duck"),

("plant", "cactus"),

("vehicle", "speed boat"),

("vehicle", "school bus")

]groups = defaultdict(list)

for (key, value) in data:

# 用fromkeys將列表轉換成字典

def from_keys():

keys = # ['a', 'b'] keys = ('a', 'b')

value =

d = dict.fromkeys(keys, value)

print d #

# 用字典實現switch...case語句

def use_dict(arg):

if arg == 0:

return 'zero'

elif arg == 1:

return 'one'

elif arg == 2:

return "two"

else:

return "nothing"

data =

data.get(arg, "nothing")

# 使用iteritems迭代字典中的元素

def for_dict():

d =

for k, v in d.items(): # 迭代超大字典的時候,記憶體瞬間擴大二倍

print(k, v)

for k, v in d.iteritems(): # 惰性載入

print k, v

# 使用字典推導式

def ceat_dict():

numbers = [1, 2, 3]

# bad

d1 = dict([(number, number * 2) for number in numbers])

# good

d =

讓Python更高效的技巧

記得朋友說過這樣的話 在我們指責機器配置不高,程式速度慢的時候,我們應該找找自己的程式 寫的不高效.因為現在的電腦硬體已經很強大,當遇到瓶頸後,多找找自己 的問題,不要總是指責機器的不是 越來越覺得這句話很實在,而這裡造成我們的 執行速度不夠快的原因有多方面,第乙個當然是演算法設計本身,這個相對好處...

ListView 更高效的使用 Adapter

一 adapter adapter是listview和資料來源之間的中間人。當每條資料進入可見區時,adapter會呼叫他的getview 方法,並返回代表具體資料的檢視。滾動的時候頻繁呼叫,支援成千上萬的資料。最簡單的方法,最慢最不實用 public void getview int positi...

怎麼讓分頁更高效

最基本的分頁方式 select from where order by limit 在中小資料量的情況下,這樣的sql足夠用了,唯一需要注意的問題就是確保使用了索引 舉例來說,如果實際sql類似下面語句,那麼在category id,id兩列上建立復合索引比較好 select from articl...