整理Python中經常使用的函數html
使用ast模塊中的literal_eval函數來實現,把字符串形式的list轉換爲Python的基礎類型listpython
from ast import literal_eval str_list = "[1838, 13735, 8285, 35386]" mylist = literal_eval(str_list) type(mylist )
filter() 函數用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。app
該接收兩個參數,第一個爲函數,第二個爲序列,序列的每一個元素做爲參數傳遞給函數進行判,而後返回 True 或 False,最後將返回 True 的元素放到新列表中。函數
filter(function, iterable)
Python3.x 返回的結果是迭代器對象,能夠使用list()函數把迭代器對轉轉換爲列表對象,例如,學習
>>> ret = filter(lambda x: x % 2 == 0, range(10)) >>> print(list(ret)) [0, 2, 4, 6, 8]
當對List、Dict進行排序時,Python提供了兩個方法:測試
在本質上,list的排序和內建函數sorted的排序是差很少的,連參數都是同樣的,主要區別在於,list.sort()
是對已經存在的列表進行操做,進而能夠改變列表;而內建函數sorted
返回的是一個新的list,而不是在原來的基礎上進行的操做。返回值是一個通過排序的可迭代類型,與iterable是同樣的。 ui
sorted(iterable, key=None, reverse=False)
list_obj.sort(key=None, reverse=False)
參數註釋:google
key參數接收的函數形式以下,x是列表項的元素,key接受的函數必須返回值,用於表示此元素的權值,sort將按照權值的大小進行排序spa
def f(x): return len(x)
舉個例子,有以下列表,列表項是元組:code
list = [('d',3),('a',5),('d',1),('c',2),('d',2)]
1,按照元組的第二個元素對列表進行排序
>>> sorted(list,key=lambda x:x[1]) [('d', 1), ('c', 2), ('d', 2), ('d', 3), ('a', 5)]
2,對列表進行排序時,先按照元組的第一列進行排序,而後在第一列的基礎按照元組的第二列進行排序
>>> sorted(list, key = lambda x:(x[0],x[1])) [('a', 5), ('c', 2), ('d', 1), ('d', 2), ('d', 3)]
str(obj) 函數將對象obj轉化爲適於閱讀的字符串形式,也就是說,str()函數返回的對象的字符串形式:
>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'}; >>> str(dict) "{'google': 'google.com', 'runoob': 'runoob.com'}"
print()函數用於打印數據
1,常規用法
常規用法的定義以下,
print(*objects, sep=' ', end='\n', file=sys.stdout)
參數註釋:
使用示例,sep、end和file參數使用默認值:
>>> name='vic' >>> age=22 >>> print('my name is',name,',',age, 'years old') my name is vic , 22 years old
2,格式化輸出
格式化輸出的定義以下:
print(format % args)
參數註釋:
當args中包含多個參數時,須要使用元組形式:
>>> print('my name is %s, %d years old'%(name,age)) my name is vic, 22 years old
any(iterable) :參數iterable:可迭代對象;若是當iterable有任意一個值是非0,非空、True,那麼結果就是True。若是iterable全部的值都是0、''或False時,那麼結果爲False
def any(iterable): for element in iterable: if element: return True return False
all(iterable)函數,若是當iterable有任意一個值是0,空、False,那麼結果就是False。只有當iterable全部的值都是非0、非''或True時,結果纔是True
def any(iterable): for element in iterable: if not element: return False return True
舉個例子,建立一個列表[2,3,4],測試all()和 any()函數:
>>> nl=list(range(2,5)) >>> print(all(n>=2 for n in nl)) True >>> print(all(n>=3 for n in nl)) False >>> print(any(n>=3 for n in nl)) True
參考文檔: