版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)處理的100個(gè)Python小技巧
目前Python可以說(shuō)是非常流行,在目前的編程語(yǔ)言中,Python的抽象程度
是最高的,是最接近自然語(yǔ)言的,很容易上手。
你可以用它來(lái)完成很多任務(wù),比如數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、Web開發(fā)、腳本編
寫、自動(dòng)化等。
[1、for循環(huán)中的else條件
這是一個(gè)for-else方法,循環(huán)遍歷列表時(shí)使用else語(yǔ)句。
下面舉個(gè)例子,比如我們想檢查一個(gè)列表中是否包含奇數(shù)。
那么可以通過(guò)for循環(huán),遍歷查找。
numbers=[2,4,6,8,1]
fornumberinnumbers:
ifnumber%2==1:
print(number)
break
else:
print(MNooddnumbers")
如果找到了奇數(shù),就會(huì)打印該數(shù)值,并且執(zhí)行break語(yǔ)句,跳過(guò)else語(yǔ)句。
沒有的話,就不會(huì)執(zhí)行break語(yǔ)句,而是執(zhí)行else語(yǔ)句。
I2、從列表中獲取元素,定義多個(gè)變量
my」List=[1,2,3,%5]
one,twothree,four,five=my_list
3、使用heapq模塊,獲取列表中n個(gè)最大或最小的元素
impor!heapq
scores=[51,33,64,87,91,75,T5,49,33,821
prirrt(heapq.nlargest(3,scores))#[91,87,82]_________
print(heapq.nsmallest(5,scores))#[15,33,33,49,51]
I4、將列表中的所有元素作為參數(shù)傳遞給函數(shù)
我們可以使用*號(hào),提取列表中所有的元素
my_list=[1,2,3,4]
print(my_list)#[1,2,3,4]
print(*my_list)#1234
如此便可以將列表中的所有元素,作為參數(shù)傳遞給函數(shù)
dersum_of_elements(*arg):
total=0
foriinarg:
total+=i
returntotal
resultsum_of_aelements(*[lJ2,3,4])
print(result)#10
I5、獲取列表的所有中間元素
_j*elements_in_the_middle,_=[1,2,3,4,5,6,7,8]
print(elements_in_the_middle)#[2,3,4,5,6,7]
I6、使用一行代碼賦值多個(gè)變量
one,two,three,four=1,2,3,4
I7、列表推導(dǎo)式
只用一行代碼,便可完成對(duì)數(shù)組的迭代以及運(yùn)算。
比如,將列表中的每個(gè)數(shù)字提高一倍。
numbers=[1,3,4,5]
squared_numbers=[num*numfornuminnumbers]
print(squared_numbers)#[1,4,9,16,25]
推導(dǎo)式不僅列表能用,字典、集合、生成器也能使用。
下面看一下,使用字典推導(dǎo)式,將字典的值提高一倍。
dictionary={'a':4,'b':5)
squared__dictionary={key:num*numfor(key,num)indictionary.items()}
print(squared_dictionary)#{'a':16,'b':25}
I8、通過(guò)Enum枚舉同一標(biāo)簽或一系列常量的集合
枚舉是綁定到唯一的常量值的一組符號(hào)名稱(成員)。
在枚舉中,成員可以通過(guò)身份進(jìn)行比較,枚舉本身可以迭代。
I9、重復(fù)字符串
name="Banana"
print(name*4)#BananaBananaBananaBanana
I10,比較3個(gè)數(shù)字的大小
如果想比較一個(gè)值和其他兩個(gè)值的大小情況,你可以使用簡(jiǎn)單的數(shù)學(xué)表達(dá)
式。
1<X<10
這個(gè)是最簡(jiǎn)單的代數(shù)表達(dá)式,在Python中也是可以使用的。
x=3
print(l<x<10)#True
print(l<xandx<10)#True
111、使用1行代碼合并字典
first_dictionary={'name':'Fan','location':'Guangzhou'}_____________________
second_dictionary={'name':'Fan','surname*:'Xiao,,'location':'Guangdong^^u
angzhou'}
result=first_dictionary|second_dictionary_____________________________________
print(result)
#{'name*:'Fan','location':'Guangdong,Guangzhou','surname':'Xiao'}
I12、查找元組中元素的索引
books—('Atomichabits','Egoistheenemy','Outliers','Mastery')
print(books.index('Mastery'))#3
I13、將字符串轉(zhuǎn)換為字符串列表
假設(shè)你在函數(shù)中獲得輸出,原本應(yīng)該是一個(gè)列表,但實(shí)際上卻是一個(gè)字符
串。
i叩ut=”[1,2,3]“
你可能第一時(shí)間會(huì)想到使用索引或者正則表達(dá)式。
實(shí)際上,使用ast模塊的literal_eval方法就能搞定。
importast
string_to_list(string)j________
retui!:ast.literal_eval(string)
string="[1,2,3]”
my_list=string_to_list(string)
print(my_list)#[1,2,3]
string="[[1,2,3],[4,5,6]]"
=string_to_list(string)
print(my_list)#[[1>2,3],[4,5,6]]
I14,計(jì)算兩數(shù)差值
計(jì)算出2個(gè)數(shù)字之間的差值。
defsubtract(a,b)
returna-b
print((subtract(l,3)))it-2
print((subtract(3,1)))#2
上面的這個(gè)方法,需要考慮數(shù)值的先后順序
defsubtract(a,b)
returna-b
print((subtract(a=l,b=3)))#?2
print((subtract(b=3,a=l)))#-2
使用命名參數(shù),安排順序,這樣就不會(huì)出錯(cuò)了。
|15、用一個(gè)print。語(yǔ)句打印多個(gè)元素
print(l,2,3,"a","z"j"thisishere","hereissomethingelse")
I16.在同一行打印多個(gè)元素
print("Hello",end="")
print("World")#HelloWorld
printC'Hello",end=n")
print("World")HelloWorld
print('words','with','commas','in','between',sep='「)
#words,with,commas,in,between
I17、打印多個(gè)值,在每個(gè)值之間使用自定義分隔符
print(“29",“01“,“2022”,sep="/“)#29/01/2022
print("name"j"",sep="0")#name@
I18、不能在變量名的開頭使用數(shù)字
foujletters="abed"#thisworks
4_letters="abed"#thisdoesn'twork
這是Python的變量命名規(guī)則。
I19、不能在變量名的開頭使用運(yùn)算符
+variable="abed"#thisdoesn'twork
I20、數(shù)字的第一位不能是0
number=0110#thisdoesn'twork
這個(gè)確實(shí)挺神奇的。
|21、在變量名的任何地方使用下劃線
a_b="abed"#thisworks
__a_b_c_d="abed"#thisalsoworks
這并不意味著,你可以無(wú)限使用,為了代碼的易讀性,還是需要合理使用。
I22、使用下劃線分割數(shù)值較大的數(shù)字
print(1__000_000_000)#1000000000
print(1_234_567)#1234567
如此,看到一大堆數(shù)字時(shí),也能輕松閱讀。
I23、反轉(zhuǎn)列表
my」ist=[W,'c]W]
my_list.reverse()
print(my_list)#['d1,'b1,fa1]
I24、使用步進(jìn)函數(shù)對(duì)字符串切片
my_string="Thisisjustasentence"
print(my_string[0:5])#This
#Takejthreestepsforward
print(my_string[0:10:3])#Tsse
I25、反向切片
my_string=_"Thisisjustasentence"
[10:0:-1])#sujsisih
#Taketwostepsforward
print(my_string[10:0:-2])#sjsi
I26、使用開始或結(jié)束索引進(jìn)行切片
my_string="Thisisjustasentence"
print(my_string[4:])#isjustasentence
print(my_string[:3])#Thi
I27、/和〃的區(qū)別
print(3/2)#1.5
print(3//2)#1
|28、==和1$的區(qū)別
is:檢查兩個(gè)變量是否指向同一對(duì)象內(nèi)存中
==:比較兩個(gè)對(duì)象的值
first_list=[1,2,3]
second_list=[1,2,3]
#比較兩個(gè)值
print(firsjlist==second_list)#True
#是否指向同?內(nèi)存
printis3econd_list)
#False
third_list=first_list
print(third_listisfirsjlist)
#True
I29、合并字典
dictionary__one("a":1,"b":2}
dictionary_two={七":3,“d”:4}
merged={**dictionary_oneJ**dictionary_two}
print(merged)#{'a':1,'b':2,'c':3,'d':4}
I30、檢直字符串是否大于另一字符串
first="abc"
second="def"
print(first<second)#True
second="ab"
print(first<second)#False
I31、檢查字符串是否以特定字符開頭(不使用索引)
my_string="abcdef"
print(my_string.startswith("b"))itFalse
|32、使用id()查找變量的唯一id
print(id(l))#4325776624
print(id(2))#4325776656
print(id("string"))#4327978288
I33、整數(shù)、浮點(diǎn)數(shù)、字符串、布爾值和元組都是不可變的
當(dāng)變量被賦值為整數(shù)、浮點(diǎn)數(shù)、字符串、布爾值、元組這些不可變類型后,
該變量就會(huì)指向一個(gè)內(nèi)存對(duì)象。
如果重新給變量再賦值,它的內(nèi)存對(duì)象就會(huì)發(fā)生改變。
number=1______________________
print(id(number))#4325215472
print(id(l))#4325215472
number=3
print(id(number))#4325215^36
print(id(l))#4325215472
I34、字符串和元組也是不可變的
此處再說(shuō)明一次。
name="Fatos"
print(id(name))#4422282544
name="fatos”
print(id(name))#4422346608
I35、列表、集合和字典都是可變的
這意味著發(fā)生更改時(shí),不會(huì)改變其內(nèi)存對(duì)象。
cities=["Beijing","Guangzhou","chengdu"]
print(id(cities))#4482699712
cities.append("Beijing")
print(id(cities))#4482699712
下面是字典。
my_set={1,2,3,4}
print(id(my_set))#4352726176
my_set.add⑸
print(id(my_set))#4352726176
I36、把一個(gè)列表變成不可變的列表
my_set=frozenset(['a','b\'c\P'])
my_set.add("a")
使用frozenset()后,你就無(wú)法更改了。
|37、if-elif塊可以在沒有else塊的情況下存在
但是elif不能在沒有if語(yǔ)句之前獨(dú)立存在。
defcheck_number(number)
_ifnumber>0:
"Positive"
elifnumber==0;
retui'i"Zero"
____r*"Negative"____________
print(check_number(l))#Positive
I38、使用sorted。檢查2個(gè)字符串是否為相同
defcheck_if_anagram(first_wor*d,second_word):______
first_word=first_word.lower()
second_word=second_word.lower()
returnsorted(first_word)==sorted(second_word)
print(check_if_anagram("testinG","Testing")):;??;
print(check_if_anagratn("Here","Rehe"))#True
print(check_if_anagram("Know","Now"))#False
I39、獲取字符的Unicode值
print(ord("A"))#65
printCordC'B"))#66
print(ord("C"))#66
print(ord("a"))#97
I40、獲取字典的健
雅磁勃碑ry={"a":工,“b“:2,“c":3}
keys=dictionary.keys()
print(list(keys))#['a','b','c']
41、獲取字典的值
dictionary={“a”:1,“b“:2,“c”:3}
valuesdictionary.values()
print(list(values))#[1,2,3]
I42、交換字典的鍵、值位置
dictionary={"a":1,"b":2,"c":3}
reversed_dictionary={j:ifori,jindictionary.items。}
print(reversed)#{1:'a',2:'b',3:'c'}
I43、將布爾值轉(zhuǎn)換為數(shù)字
print(int(False))#0
print(float(True))#1.0
I44、在算術(shù)運(yùn)算中使用布爾值
X=10
y=12
resuIt=(x-False)/(y*True)
print(result)#0,8333333333333334
I45、將任何數(shù)據(jù)類型轉(zhuǎn)換為布爾值
print(bool(.0))#False_____
print(bool⑶)#True
print(bool("-"))#True
print(bool("string")):;True
print(bool(""))#True
I46、將值轉(zhuǎn)換為復(fù)數(shù)
print(complex(10j2))#(10+2j)
也可以將數(shù)字轉(zhuǎn)換為十六進(jìn)制數(shù)。
print(hex(ll))#0xb
I47、在列表的第一個(gè)位置添加一個(gè)值
如果使用叩pend(),將從列表的最后一個(gè)位置插入新值。
可以通過(guò)使用insertO,來(lái)指定插入新元素的索引和數(shù)值。
那么列表的第一個(gè)位置為0,即下標(biāo)為0。
my_list=[3,5]
my_list.append⑹
my_list.insert(0,2)
print(my_list)#[2,3,4,5,6]
I48、Lambda函數(shù)只能在一行代碼中
無(wú)法通過(guò)多行代碼,來(lái)使用lambda函數(shù)。
comparison=iambd/ix:x>3:
print("x>3")
else:
print("xisnotgreaterthan3")
報(bào)錯(cuò)。
comparison=lambdax:ifx>3:
A
SyntaxError:invalidsyntax
49、Lambda中的條件語(yǔ)句應(yīng)始終包含else語(yǔ)句
comparison=lambdax:"x>3"x>3
運(yùn)行上面的代碼,報(bào)錯(cuò)。
comparison=lambdax:ifx>3:
人
SyntaxError:invalidsyntax
這是由于條件表達(dá)式的特性,而不是lambda的導(dǎo)致的。
I50、使用filter(),獲得一個(gè)新對(duì)象
my_list=[1,2,3,4]
odd=filter(lambdax:x%2==?」my_list)
print(list(odd))#[1,3]
print(my_list)#[1,2,3,4]
|51、map()返回一個(gè)新對(duì)象
map()函數(shù)將給定函數(shù)應(yīng)用于可迭代對(duì)象(列表、元組等),然后返回結(jié)果
(map對(duì)象)。
my_list=二13[4]
squared=map(iambdax:x**2,my_list)
printQist(squared))#[1,4,9)16]
print(my__list)#[1,2,3,4]
I52、range。的step參數(shù)
fornumberinrange(1,10,3):
____print(number,end="")____
#147
53、range。默認(rèn)從0開始
defrange_with_zero(number):
foriinrange(0,number):
print(i,end=,
range_with_no_zero(number)
foriinrange(number):
print(ijend='')
range_with_zero(3)#012
range_with_no_zero(3)#012
I54、不需要和0比較長(zhǎng)度
如果長(zhǎng)度大于0,則默認(rèn)為True。
山,get_element_with_comparison(my_list):
iflen(my_list)>0:
returnmy_list[0]
defget_first_element(my_lis,Qj_____________________
iflen(my_list):
returnmy_list[0]___________________________
elemerrts=[1,2,3,42
first_result=get_element_with_comparison(elements)
second_result=get_element_with_comparison(elements)
print(first_result==second_result)#True
I55、可以在同一個(gè)作用域內(nèi)多次定義一個(gè)方法
但是,只有最后一個(gè)會(huì)被調(diào)用,覆蓋以前。
defget_address()
"Firstaddress"
defget_address():_________
"Secondaddress"
defget_address():____________________________________________________________________
_____return"Thirdaddress**
print(get_address())#Thirdaddress
I56、在外部直接訪問(wèn)私有屬性
在定義屬性或方法時(shí),在屬性名或者方法名前增加兩個(gè)下劃線,定義的就是
私有屬性或方法。
如果想要在外部訪問(wèn),那么只需要在名稱前面加上'一類名'變成二類名—名稱
classEngineer:______________________________________________________________________
def_init_(self,name):
=name
_________seIf_starting_sa1ary=62000
dain=Engineer('Dain')
print(dain._Engineer_starting_salary)#62000
I57、檢查對(duì)象的內(nèi)存使用情況
importsys
print(sys.getsizeof("bitcoin"))#56
I58、定義一個(gè)方法,可以調(diào)用任意個(gè)參數(shù)
defget_sum(*arguments):
_____result=0_______________________________________________________________________
_____foriinarguments:______________________________________________________________
result+=i
_____returnresult
print(get_sum(l,2,3))#6_________________________________________________________
print(get_sum(1,2,3,4,5))#15
print(get_sum(lj2,3,4,5,6,7))#28
I59、使用super?;蚋割惖拿Q調(diào)用父類的初始化
使用super函數(shù)調(diào)用父類的初始化方法。
classParent:
def_init_(self,city,address):
self.city=city
self.address=address
classChild(Parent):
def_init_(self,city,address,university)j____________________________
super*。(city,address)
self.university=university
child=Child('PekingUniversity','FudanUniversity''TsinghuaUniversity')
print(child.university)#TsinghuaUniversity
使用父類的名稱調(diào)用父類,
classParent:
def_init一(self,city,address
self.city=city
self.address=address
classChild(Parent):
def^init__(self,city,address,university):
Parent._init_(self,city,address)
________self.universit)^=^university
child=Child('PekingUniversity','FudanUniversity','TsinghuaUniversity')
print(child.university)#TsinghuaUniversity
I60、在類中使用+操作符
在兩個(gè)int數(shù)據(jù)類型之間使用+運(yùn)算符時(shí),將得到它們的和。
而在兩個(gè)字符串?dāng)?shù)據(jù)類型之間使用它時(shí),會(huì)將其合并。
print(10+1)#兩數(shù)相加
print('first'+'second')#j工丁相川
這個(gè)就是操作符重載,你還可以在類中使用(_add_)。
classExpenses:
def_init_(self,rent,groceries):
self.rent=rent
self.groceries=groceries___________________
def_add_(self,other):
returnExpenses(self.rent+other.rent,
self.groceries+other.groceries)
april^expenses=Expenses(1000,200)
may_expenses=Expenses(1000,300)
total_expenses=april_expenses+may_expenses
print(total_expenses.rent)#2000
print(total_expenses.groceries)#500
I61、在類中使用<和==操作符
下面定義一個(gè)操作重載示例(<操作符),使用_lt_方法。
同樣的,==操作符使用_eq_方法。
classJourney:
def_init_(self,location,destination,duration):
self.location=location
self.destination=destination
self.duration=duration
def_eq一(selfother):______________________________
________return((self.location==other.location)and______
(self.destination==other.destination)Ed
(self.duration==other.duration))
first=3ourney('LocationA'^'DestinationA''30min')
second=3ourney('LocationB*,'DestinationB','30min')
print(first==second)
還有一些其他的定義。
_sub_()for-
_mul()for*
_truediv()for/
_ne_()for!=
_ge_()for>=
_gt_0for>
I62、為類的對(duì)象定義自定義的可打印版本
I63、交換字符串中字符的大小寫
string="Thisisjustasentence.n
result=string.swapcaseQ______________
print(result)#tHISIS3USTASENTENCE.
64、檢查字符串是否都是空格
string=""
result=string.isspace()
print(result)#True
I65、檢查字符串是否都是字母或數(shù)字
name="Password"
print(name.isalnum())#True
name三"SecurePassword"
print(name.isalnum())#False
name="S3cur3P4ssw0rd^_______
print(name.isalnum())#True
name="133"
print(name,isalnum())#True
I66、檢查字符串是否都是字母
string_="Name"
print(string.isalpha())_#True
string="FirstnameLastname"
print(string.isalpha())#False
string=J^P4ssw0rd"
print(string.isalpha())#False
I67、根據(jù)參數(shù)刪除字符
從右側(cè)開始。
string=J'Jhisisasentencewith______"
print(string.rstrip())#"Thisisasentencewith"
string="thishereisasentence.....,aaaaasd"
print(string.rstrip(".,dsa"))汁"thishereisasentence"
同樣的,左側(cè)也能操作。
string="ffffffffFirstn
print(string.lstrip("f"))#First
I68、檢查字符串是否為數(shù)字
string="seven"
print(string.isdigit())#False
string="1337"
print(string.isdigit())#True
string="5a"
print(string.isdigit())#False
string="2**5"
print(string.isdigit())#False
I69、檢查字符串是否為中文數(shù)字
#42673
string="四二六七="
print(string,isdigit。)#False
print(string.isnumeric())#True
I70、檢查字符串是否所有單詞都是大寫開頭
string="Thisisasentence"_____________
print(string.istitle())#False
string="10PythonTips”
print(string?istitle())#True___________
string="HowtoPrintAStringinPython"
#False
print(string.istitle())
string="PYTHON"
print(string.istitle())#False
I71.在元組中使用負(fù)索引
numbers=(1,2,3,4)_
print(numbers[-!])#4
print(numbers[-4])#1
I72、在元組中嵌套列表和元組
mixed_tuple=(("a"*10,3,4)j['first','second','third'])
print(mixed_tuple[I])#「first],second',1third,]_______
print(mixed__tuple[0])#('aaaaaaaaaa',3,4)
I73、快速統(tǒng)計(jì)元素在列表中出現(xiàn)的次數(shù)
names^["Besim","Albert","Besim","Fisnik","Meriton"]
print(names.count("Besim"))#2
I74、使用slice。獲取元素
使用slice。獲取最后n個(gè)元素。
my_list=[1,2,3,4,5,6,7,8,9,10]
slicing=slice(-4,None)
print(my_list[slicing])#[4,5,6]
print(my_list[-3])#4
使用slice。做切片任務(wù)。
string二"DataScience"
slice_object=slice(5,None)__________
print(string[slice_object])#Science
75、計(jì)算元素在元組中出現(xiàn)的次數(shù)
my_tuple=('a11,‘fl'a',5,'a')
print(my_tuple.count('a'))#3
I76、獲取元組中元素的索引
my.tuple=('a',1,'f\'a\5,'a')
print(my_tuple.index('f'))#2
I77、步進(jìn)獲得元組
my_tuple=(1,2,3,4,5,6,7,8,9,10)
print(my_tuple[::3])#(1,4,7,10)
I78、通過(guò)索引獲取子元組
my_tuple=(1,2,3,4,5,6,7,8,J^10)
print(my_tuple[3:])#(4,5,6,7,8,9,10)
I79、格列表、集合、字典中所有元素刪除
=[工,2,3,4]
my_1ist.clear()________
print(my_list)#[]
my-set={1」2,^}
my_set.clearQ____________
print(my_set)#set()
my_dict={“a”:1,nb":2)
my_dict^clear()___________
print(my__dict)#{}
80、合并集合
使用union。方法,返回一個(gè)新集合。
first_set={4>5,6)
second_set={1>2,3}
print(first_set.union(second_set))#{1,2,3,4,5,6}
還可以使用update。方法,將第二個(gè)集合的元素插入到第一個(gè)集合中去。
first_set={4,5,6)
second_set={1,2,3}
first_set.update(second_set)_______
print(first_set)#{1,2,3,5,6}
I81、在函數(shù)里輸出結(jié)果
de-Fis_positive(number):
print("Positive“ifnumber>0else"Negative")#Positive
is_positive(-3)
I82、if語(yǔ)句中的多介條件
math_points=51
Jbiology__poi^nts=78
physics_points=56
history_points=72
my_conditions=[math_points>50』biology_points>50J______________________
physics_points>50,history_points>50]_____________________
all(my_conditions):______________________________________________________
print("Congratulations!Youhavepassedalloftheexams.*')
else:
print("Iamsorry,butitseemsthatyouhavetorepeatatleastoneexam.")
#Congratulations!Youhavepassedalloftheexams.
I83、在一個(gè)if語(yǔ)句中,至少滿足多個(gè)條件中的一個(gè)
math_points=40
biology_points=78
physics_points=56
history_points=72
my_conditions=[math_points>50,biology_points>50,
physics__points>50,history__points>50]
ifany(my_conditions):
print("Congratulations!Youhavepassedalloftheexams.")
else:
print("工amsorry,butitseemsthatyouhavetorepeatatleastoneexam.")
#Congratulations!Youhavepassedalloftheexams.
I84、任何非空字符串都為True
print(bool("Nonempty"))#True
print(bool("**))#False
I85、任何非空列表、元組、字典都為True
print(bool([]))#False
print(bool(set([])))False
print(bool({}))#False
print(bool({"a":1}))#True
|86、None、False、0都為False
print(bool(False))#False
print(bool(None))#False
print(bool(0))#False
I87、在函數(shù)中使用全局變量
在函數(shù)無(wú)法直接修改全局變量的值。
string^"string"
defdo_nothing():
string="insideamethod
do_nothing()
print(string)#string
可通過(guò)修飾符global,修改全局變量的值。
string="string"
defdo_nothing()
_____globalstring
string="insideamethod
do_noj±ing()
print(string)#insideamethod
I88、計(jì)算字符串或列表中元素的數(shù)量
使用collections中的Counter計(jì)算字符串或列表中元素的數(shù)量。
fromco11ectionsimportCounter_____________________________________________________
result=Counter("Banana")
print(result)#Counter({*a':3,'n1:2,'2})
result=Counter([lj2,1,3,a%1,5,1,61)
print(result)#Counter({1:5.2:1.3:1,4:1,5:1,6:1})
I89、檢查2介字符串是否為相同
可以使用Counter。方法。
fromcollectionsimportCounter
deicheck_if_anagram(first_string,second_string):
first_string=first_string.lower()
second_string=second_string.lowerQ__________________
_____returnCounter(first_string)==Counter(second_string)
print(check_if_anagram('testinG','Testing*))#True
print(check_if_anagram('Here','Rehe'))#True___________
print(check_if_anagram('Know','Now'))#False
可以使用sorted。方法。
dufcheck_if_anagram(first^ord,second_word):
first_word=first_word.lower()
second_word=second_word.lower()
___returnsorted(first_word)==sorted(second_word)
print(check_if_anagram(HtestinG","Testing"))HTrue
print(check_if_anagram("Here","Rehe"))><True
print(check_if_anagram("Know","Now"))#False
I90、使用itertools中的count計(jì)算元素的數(shù)量
fromitertoolsimportcount
my_vowels=「a;'e,'i,P','A','E','0;'U']
current_counter=count()
string="Thisisjustasentence.”
foriinstring:
ifiinmy_vowels:
print(f"Currentvowel:{i}")
print(f"Numberofvowelsfoundsofar:{next(current__counter)}")
輸出如下。
Currentvowel:i
Numberofvowelsfoundsofar:0
Currentj/owel:i
Numberofvowelsfoundsofar:1
Currentvowel:u
Numberofvowelsfoundsofar:2
Currentvowel:a
Numberofvowelsfoundsofar:3
Currentvowel:e
Numberofvowelsfoundsofar:4
Currentvowel:e
Numberofvowelsfoundsofar:5
Currentvowel:e
Numberofvowelsfoundsofar:6
I91、對(duì)字符串或列表的元素進(jìn)行次數(shù)排序
collections模塊的Counter。,默認(rèn)情況下是不會(huì)根據(jù)元素的頻率對(duì)它們進(jìn)
行排序的。
fromcollectionsimportCounter_________________________
result=Counter([l,2,3,2,2,2,2])
print(result)#Counter({2:5,1:1,3:1})
print(result.most_common())#[(2,5),(1,1),(3,1)]
map()函數(shù)將給定函數(shù)應(yīng)用于可迭代對(duì)象(列表、元組等),然后返回結(jié)果
(map對(duì)象)。
I92、查找列表中出現(xiàn)頻率最高的元素
my_list=['1',1,0,'a','b',2,'a','c\'a']
print(max(set(my_list),key=my__list.count))
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年剪輯師用工勞動(dòng)合同
- 商場(chǎng)專柜聯(lián)營(yíng)協(xié)議書
- 個(gè)體與個(gè)體之間的借款協(xié)議文本
- 2024年教師勞動(dòng)合同協(xié)議書
- 2024年肉雞飼料購(gòu)銷合同全文-
- 消防行業(yè)勞務(wù)合同樣例
- 投標(biāo)保密承諾書轉(zhuǎn)讓協(xié)議2024年
- 廣東省新鮮果蔬采購(gòu)合同協(xié)議模板
- 集體土地上房屋搬遷補(bǔ)償協(xié)議
- 企業(yè)環(huán)境清潔臨時(shí)工雇傭合同
- 磁新材料科技有限公司20萬(wàn)噸超純鐵精粉項(xiàng)目環(huán)評(píng)可研資料環(huán)境影響
- 大學(xué)生食品工作方面的生涯發(fā)展報(bào)告
- 基于Android的天氣預(yù)報(bào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- (完整)中醫(yī)癥候積分量表
- 繪制進(jìn)度計(jì)劃?rùn)M道圖
- 常州高級(jí)中學(xué)2022-2023學(xué)年高一上學(xué)期期中質(zhì)量檢查物理試題(解析版)
- 簡(jiǎn)愛英文版課件
- 職業(yè)道德與商業(yè)道德培訓(xùn)
- 學(xué)科教研基地匯報(bào)材料
- 剪刀式升降車的安全管理試題及答案
- 神經(jīng)性頭痛的護(hù)理查房
評(píng)論
0/150
提交評(píng)論