小伙伴們好,此篇文章主要是跟大家分享13個Python中非常有利的代碼片段,有興趣的同學們趕緊來看一下吧,對大家有所幫助得話不要忘記保存以下
ListsSnippets
大家從最常見的算法設計目錄剛開始
1.把兩個目錄合拼成詞典
假定大家在Python中有兩種目錄,我希望把它們合并為詞典方式,其中的一個目錄的項做為詞典的鍵,另外做為值。這就是在用Python編寫代碼時經常碰到的一個很常見的現象
但為了解決這個問題,大家應該考慮好多個限定,比如2個目錄大小,2個頁面上原素種類,及其在其中是否存在重復原素,特別是我們將要應用元素做為key時。我們通過使用zip等內置函數來解決這個問題
keys_list=['A','B','C'] values_list=['blue','red','bold'] #Thereare3waystoconvertthesetwolistsintoadictionary #1-UsingPython'szip,dictfunctionz dict_method_1=dict(zip(keys_list,values_list)) #2-Usingthezipfunctionwithdictionarycomprehensions dict_method_2={key:valueforkey,valueinzip(keys_list,values_list)} #3-Usingthezipfunctionwithaloop items_tuples=zip(keys_list,values_list) dict_method_3={} forkey,valueinitems_tuples: ifkeyindict_method_3: pass#Toavoidrepeatingkeys. else: dict_method_3[key]=value
2.把兩個或幾個目錄合并為一個1個目錄的目錄
另外比較常見的目標就是在我們有兩種或者更多目錄時,我希望把它們所有獲取到一個頁面上,在其中比較小目錄的所有首項組成比較大頁面上第一個目錄
比如,假如我們有4個目錄[1,2,3],['a','b','c'],['h','e','y']和[4,5,6],他們想要為這幾個目錄構建一個新目錄;它無疑是[[1,'a','h',4],[2,'b','e',5],[3,'c','y',6]]
defmerge(*args,missing_val=None): #missing_valwillbeusedwhenoneofthesmallerlistsisshorterthamtheothers. #Getthemaximumlengthwithinthesmallerlists. max_length=max([len(lst)forlstinargs]) outList=[] foriinrange(max_length): result.append([args[k]ifi returnoutList
3.對詞典目錄進行篩選
這一組平時目錄目標就是排列每日任務,依據頁面上涉及到的原素基本數據類型,我們將要選用略微各種方式對這種進行篩選。
dicts_lists=[ { "Name":"James", "Age":20, }, { "Name":"May", "Age":14, }, { "Name":"Katy", "Age":23, } ] #Therearedifferentwaystosortthatlist #1-Usingthesort/sortedfunctionbasedontheage dicts_lists.sort(key=lambdaitem:item.get("Age")) #2-Usingitemgettermodulebasedonname fromoperatorimportitemgetter f=itemgetter('Name') dicts_lists.sort(key=f)
4.對字符串數組目錄進行篩選
我們通常遭遇1個字符串數組的目錄,我們應該按字母順序、長短或他們想要或我們自己的應用軟件必須的所有外在因素對這種目錄進行篩選
my_list=["blue","red","green"] #1-Usingsortorsrteddirectlyorwithspecifckeys my_list.sort()#sortsalphabeticallyorinanascendingorderfornumericdata my_list=sorted(my_list,key=len)#sortsthelistbasedonthelengthofthestringsfromshortesttolongest. #Youcanusereverse=Truetofliptheorder #2-Usinglocaleandfunctools importlocale fromfunctoolsimportcmp_to_key my_list=sorted(my_list,key=cmp_to_key(locale.strcoll))
5.依據另外一個目錄對目錄進行篩選
有時候,我們也許需要使用1個目錄的方式對另外一個目錄進行篩選,因而,我們將要有一組數字目錄(檢索)跟一個我們想要使用這個檢索進行篩選的目錄
a=['blue','green','orange','purple','yellow'] b=[3,2,5,4,1] #Use list comprehensions to sort these lists sortedList=[val for(_,val)in sorted(zip(b,a),key=lambda x: x[0])]
6.將目錄投射到詞典
目錄代碼片段最后一個每日任務,假如已知1個目錄并把它投射到詞典中,換句話說,我們想要將我們自己的目錄轉換成含有數字鍵盤的詞典
mylist=['blue','orange','green'] #Map the list into a dict using the map,zip and dict functions mapped_dict=dict(zip(itr,map(fn,itr))) DictionarySnippets
如今處理過的數據類型是詞典
7.合拼2個或幾個詞典
假定大家有兩種或幾個詞典,而且我希望把它們全部合并為1個具備唯一鍵的詞典
from collections import defaultdict #merge two or more dicts using the collections module def merge_dicts(*dicts): mdict=defaultdict(list) for dict in dicts: for key in dict: res[key].append(d[key]) return dict(mdict)
8.旋轉詞典
1個較為常見的詞典目標就是假如我們有個詞典而且必須旋轉他的鍵合值,鍵將成為值,而值將成為鍵
在我們這么做時,我們應該保證并沒有反復鍵。值能夠反復,但鍵不可以,以確保全部新鍵全是可以hashable的
my_dict={ "brand":"Ford", "model":"Mustang", "year":1964 } #Invert the dictionary based on its content #1-If we know all values are unique. my_inverted_dict=dict(map(reversed,my_dict.items())) #2-If non-unique values exist from collections import defaultdict my_inverted_dict=defaultdict(list) {my_inverted_dict[v].append(k)for k,v in my_dict.items()} #3-If any of the values are not hashable my_dict={value:key for key in my_inverted_dict for value in my_inverted_dict[key]} StringSnippets
接著是字符串數組的處理方法
9.使用f字符串數組
格式化字符串很有可能就是我們幾乎天天必須完成一項工作,在Python中有很多種方法來格式化字符串,使用f字符串數組是很不錯的挑選
#Formatting strings with f string. str_val='books' num_val=15 print(f'{num_val}{str_val}')#15 books print(f'{num_val%2=}')#1 print(f'{str_val!r}')#books #Dealing with floats price_val=5.18362 print(f'{price_val:.2f}')#5.18 #Formatting dates from datetime import datetime; date_val=datetime.utcnow() print(f'{date_val=:%Y-%m-%d}')#date_val=2021-09-24
10.查驗簽串的
一個較為常見的任務是查驗字符串數組能否在與字符串數組頁面上
addresses=["123 Elm Street","531 Oak Street","678 Maple Street"] street="Elm Street" #The top 2 methods to check if street in any of the items in the addresses list #1-Using the find method for address in addresses: if address.find(street)>=0: print(address) #2-Using the"in"keyword for address in addresses: if street in address: print(address)
11.以字節數為基準獲取字符串大小
有時候,尤其是在搭建運行內存重要應用軟件時,大家要搞清楚我們自己的字符串數組用了是多少運行內存
str1="hello" str2="????" def str_size(s): return len(s.encode('utf-8')) str_size(str1) str_size(str2) Input/Outputoperations
最終我們來看一下輸出等方面的代碼片段
12.查驗文檔存不存在
在計算機科學和大多數別的應用軟件中,大家經常要文本文件中獲取數據或者向在其中載入數據信息,但是做到這些,我們應該查驗文檔存不存在,因而,我們應該保證編碼
不會因為IO不正確而停止
#Checking if a file exists in two ways #1-Using the OS module import os exists=os.path.isfile('/path/to/file') #2-Use the pathlib module for a better performance from pathlib import Path config=Path('/path/to/file') if config.is_file(): pass
13.分析excel表
另外一種非常普遍文件互動是以excel表中解析數據,大家應用CSV控制模塊來幫我們高效地實行該每日任務
import csv csv_mapping_list=[] with open("/path/to/data.csv")as my_data: csv_reader=csv.reader(my_data,delimiter=",") line_count=0 for line in csv_reader: if line_count==0: header=line else: row_dict={key:value for key,value in zip(header,line)} csv_mapping_list.append(row_dict) line_count+=1
好啦,我們一起學了13個代碼片段,這種精彩片段簡易、簡潔明了且高效率,不管我們在哪些應用軟件行業工作中,最終會在對應的Python工程中最少應用其中一個,因此個人收藏就是一個不錯的選擇!
綜上所述,這些文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128843.html
摘要:在樹中,文檔片段被其所有的孩子所代替。因為文檔片段存在于內存中,并不在樹中,所以將子元素插入到文檔片段時不會引起頁面回流對元素位置和幾何上的計算。因此,使用文檔片段通常會起到優化性能的作用。在里說過接口表示文檔的一部分或一段。 DocumentFragments 是DOM節點。它們不是主DOM樹的一部分。通常的用例是創建文檔片段,將元素附加到文檔片段,然后將文檔片段附加到DOM樹。在D...
摘要:為什么標準化對網絡運營有利創新而不是阻礙標準化有時被視為對創新的攻擊。然而,以標準化為契機,為自動化系統和軟件建立堅實的基礎,有利于企業的發展。為什么標準化對網絡運營有利:創新而不是阻礙標準化有時被視為對創新的攻擊。被迫放棄多語種自助餐,采用更有限的菜單,聽起來總是令人窒息。這可能是因為標準化通常與監管合規標準有關,這些標準的官方名稱聽起來像是ISO 8076.905E,并與檢查表、審計員和...
摘要:為什么標準化對網絡運營有利創新而不是阻礙標準化有時被視為對創新的攻擊。然而,以標準化為契機,為自動化系統和軟件建立堅實的基礎,有利于企業的發展。為什么標準化對網絡運營有利:創新而不是阻礙標準化有時被視為對創新的攻擊。被迫放棄多語種自助餐,采用更有限的菜單,聽起來總是令人窒息。這可能是因為標準化通常與監管合規標準有關,這些標準的官方名稱聽起來像是ISO 8076.905E,并與檢查表、審計員和...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02