python常用方法总结-Python3常用函数、方法总结(持续更新…)
最近刷LeetCode,自己自娛自樂完之后去discussion看大佬們的各種巧妙解法,總是止不住的雙擊666……加上最近Python3用的比較多(雖然Python實在不推薦跑算法題目,一是運行效率太低,二是Pythonic模式感覺是在作弊,只有在不考慮效率的情況下使用Python實現(xiàn)非Pythonic的算法設計還可以說的過去,且當作熟悉Python了),總結(jié)了一下常用的函數(shù)及方法,與大家分享也可以自己溫故,與C++ STL還是有很多重疊的。
函數(shù)
next() 函數(shù)
返回迭代器的下一個項目。
next(iterator[, default])
iterator -- 可迭代對象
default -- 可選,用于設置在沒有下一個元素時返回該默認值,如果不設置,又沒有下一個元素則會觸發(fā) StopIteration 異常。
#case 1
# 首先獲得Iterator對象:
it = iter([1, 2, 3, 4, 5])
# 循環(huán):
while True:
try:
# 獲得下一個值:
x = next(it)
print(x)
except StopIteration:
# 遇到StopIteration就退出循環(huán)
break
輸出:
1
2
3
4
5
#case 2
it = iter([1, 2, 3, 4, 5])
while True:
x = next(it, "a")
print(x)
if x == "a":
break
輸出:
1
2
3
4
5
a
filter() 函數(shù)
用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
該接收兩個參數(shù),第一個為函數(shù),第二個為序列,序列的每個元素作為參數(shù)傳遞給函數(shù)進行判,然后返回 True 或 False,最后將返回 True 的元素放到新列表中。
filter(function, iterable)
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
輸出:[1, 3, 5, 7, 9]
a = list(filter(lambda x: x % 2 == 0, range(10)))
print(a)
輸出:[0, 2, 4, 6, 8]
zip()函數(shù)
用于將可迭代的對象作為參數(shù),將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表。
如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
zip([iterable, ...])
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 打包為元組的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # 元素個數(shù)與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped) # 與 zip 相反,*zipped 可理解為解壓,返回二維矩陣式
[(1, 2, 3), (4, 5, 6)]
any()函數(shù)
any() 函數(shù)用于判斷給定的可迭代參數(shù) iterable 是否全部為 False,則返回 False,如果有一個為 True,則返回 True。
元素除了是 0、空、FALSE 外都算 TRUE。
any(iterable)
>>> any(["a", "b", "", "d"]) # 列表list,存在一個為空的元素
True
>>> any([0, "", False]) # 列表list,元素全為0,"",false
False
all()函數(shù)
all() 函數(shù)用于判斷給定的可迭代參數(shù) iterable 中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。
元素除了是 0、空、None、False 外都算 True。
all(iterable)
>>> all(["a", "b", "c", "d"]) # 列表list,元素都不為空或0
True
>>> all(["a", "b", "", "d"]) # 列表list,存在一個為空的元素
False
int()函數(shù)
用于將一個字符串或數(shù)字轉(zhuǎn)換為整型。
class int(x, base=10)
x -- 字符串或數(shù)字。
base -- 進制數(shù),默認十進制。
>>> int("12",16) # 如果是帶參數(shù)base的話,12要以字符串的形式進行輸入,12 為 16進制
18
>>> int("0xa",16)
10
>>> int("10",8)
8
divmod()函數(shù)
把除數(shù)和余數(shù)運算結(jié)果結(jié)合起來,返回一個包含商和余數(shù)的元組(a // b, a % b)。
divmod(a, b)
>>>divmod(7, 2)
(3, 1)
enumerate()函數(shù)
用于將一個可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標,一般用在 for 循環(huán)當中。
enumerate(sequence, [start=0])
>>>seasons = ["Spring", "Summer", "Fall", "Winter"]
>>> list(enumerate(seasons))
[(0, "Spring"), (1, "Summer"), (2, "Fall"), (3, "Winter")]
>>> list(enumerate(seasons, start=1)) # 下標從 1 開始
[(1, "Spring"), (2, "Summer"), (3, "Fall"), (4, "Winter")]
eval()函數(shù)
用來執(zhí)行一個字符串表達式,并返回表達式的值。
eval(expression[, globals[, locals]])
expression -- 表達式。
globals -- 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。
locals -- 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。
>>>x = 7
>>> eval( "3 * x" )
21
>>> a = "123"
>>> type(a)
>>> b = eval(a)
>>> b
123
>>> type(b)
reduce() 函數(shù)
會對參數(shù)序列中元素進行累積。
函數(shù)將一個數(shù)據(jù)集合(鏈表,元組等)中的所有數(shù)據(jù)進行下列操作:
用傳給 reduce 中的函數(shù) function(有兩個參數(shù))先對集合中的第 1、2 個元素進行操作,得到的結(jié)果再與第三個數(shù)據(jù)用 function 函數(shù)運算,最后得到一個結(jié)果。
reduce(function, iterable[, initializer])
>>>def add(x, y) : # 兩數(shù)相加
... return x + y
...
>>> reduce(add, [1,2,3,4,5]) # 計算列表和:1+2+3+4+5
15
>>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函數(shù)
15
方法
字典get()方法
返回指定鍵的值,如果值不在字典中返回默認值。
dict.get(key, default=None)
dict = {"Name": "Zara", "Age": 27}
print "Value : %s" % dict.get("Sex", "Never")
輸出:Value : Never
isalnum()方法
檢測字符串是否由字母和數(shù)字組成。如果 string 至少有一個字符并且所有字符都是字母或數(shù)字則返回 True,否則返回 False。
str.isalnum()
str = "this2009"; # 字符中沒有空格
print str.isalnum();
輸出:
True
str = "this is string example....wow!!!";
print str.isalnum();
輸出:
False
strip()方法
用于移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。
注意:該方法只能刪除開頭或是結(jié)尾的字符,不能刪除中間部分的字符。
str.strip([chars])
str = "00000003210abc1230000000";
print(str.strip( "0" )) # 去除首尾字符 0
輸出:
3210abc0123
str2 = " abc "; # 去除首尾空格
print(str2.strip())
輸出:
abc
join()方法
用于將序列中的元素以指定的字符連接生成一個新的字符串。
str.join(sequence)
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
輸出:
a-b-c
rjust()方法
返回一個原字符串右對齊,并使用空格填充至長度 width 的新字符串。如果指定的長度小于字符串的長度則返回原字符串。
str.rjust(width[, fillchar])
str = "this is string example....wow!!!";
print str.rjust(50, "0");
輸出:
000000000000000000this is string example....wow!!!
ljust()方法同理
位運算符
與(&)和或(|)運算符就不說了,主要來看看下面幾個位運算符:
a = 0011 1100
b = 0000 1101
^按位異或運算符:當兩對應的二進位相異時,結(jié)果為1
(a ^ b) 輸出結(jié)果 49 ,二進制解釋: 0011 0001
~按位取反運算符:對數(shù)據(jù)的每個二進制位取反,即把1變?yōu)?,把0變?yōu)? 。~x 類似于 -x-1
(~a ) 輸出結(jié)果 -61 ,二進制解釋: 1100 0011,在一個有符號二進制數(shù)的補碼形式。
<<左移動運算符:運算數(shù)的各二進位全部左移若干位,由 << 右邊的數(shù)字指定了移動的位數(shù),高位丟棄,低位補0。
a << 2 輸出結(jié)果 240 ,二進制解釋: 1111 0000
>>右移動運算符:把">>"左邊的運算數(shù)的各二進位全部右移若干位,>> 右邊的數(shù)字指定了移動的位數(shù)
a >> 2 輸出結(jié)果 15 ,二進制解釋: 0000 1111
總結(jié)
以上是生活随笔為你收集整理的python常用方法总结-Python3常用函数、方法总结(持续更新…)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: openresty完全开发指南_FDA拟
- 下一篇: ppt提示内存或系统资源不足_为何手机一