成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

共享13個(gè)非常有利的Python代碼片段

89542767 / 409人閱讀

  小伙伴們好,此篇文章主要是跟大家分享13個(gè)Python中非常有利的代碼片段,有興趣的同學(xué)們趕緊來看一下吧,對(duì)大家有所幫助得話不要忘記保存以下


  ListsSnippets


  大家從最常見的算法設(shè)計(jì)目錄剛開始


  1.把兩個(gè)目錄合拼成詞典


  假定大家在Python中有兩種目錄,我希望把它們合并為詞典方式,其中的一個(gè)目錄的項(xiàng)做為詞典的鍵,另外做為值。這就是在用Python編寫代碼時(shí)經(jīng)常碰到的一個(gè)很常見的現(xiàn)象


  但為了解決這個(gè)問題,大家應(yīng)該考慮好多個(gè)限定,比如2個(gè)目錄大小,2個(gè)頁面上原素種類,及其在其中是否存在重復(fù)原素,特別是我們將要應(yīng)用元素做為key時(shí)。我們通過使用zip等內(nèi)置函數(shù)來解決這個(gè)問題


  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.把兩個(gè)或幾個(gè)目錄合并為一個(gè)1個(gè)目錄的目錄


  另外比較常見的目標(biāo)就是在我們有兩種或者更多目錄時(shí),我希望把它們所有獲取到一個(gè)頁面上,在其中比較小目錄的所有首項(xiàng)組成比較大頁面上第一個(gè)目錄


  比如,假如我們有4個(gè)目錄[1,2,3],['a','b','c'],['h','e','y']和[4,5,6],他們想要為這幾個(gè)目錄構(gòu)建一個(gè)新目錄;它無疑是[[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.對(duì)詞典目錄進(jìn)行篩選


  這一組平時(shí)目錄目標(biāo)就是排列每日任務(wù),依據(jù)頁面上涉及到的原素基本數(shù)據(jù)類型,我們將要選用略微各種方式對(duì)這種進(jìn)行篩選。


  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.對(duì)字符串?dāng)?shù)組目錄進(jìn)行篩選


  我們通常遭遇1個(gè)字符串?dāng)?shù)組的目錄,我們應(yīng)該按字母順序、長短或他們想要或我們自己的應(yīng)用軟件必須的所有外在因素對(duì)這種目錄進(jìn)行篩選


  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.依據(jù)另外一個(gè)目錄對(duì)目錄進(jìn)行篩選


  有時(shí)候,我們也許需要使用1個(gè)目錄的方式對(duì)另外一個(gè)目錄進(jìn)行篩選,因而,我們將要有一組數(shù)字目錄(檢索)跟一個(gè)我們想要使用這個(gè)檢索進(jìn)行篩選的目錄


  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.將目錄投射到詞典


  目錄代碼片段最后一個(gè)每日任務(wù),假如已知1個(gè)目錄并把它投射到詞典中,換句話說,我們想要將我們自己的目錄轉(zhuǎn)換成含有數(shù)字鍵盤的詞典


  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


  如今處理過的數(shù)據(jù)類型是詞典


  7.合拼2個(gè)或幾個(gè)詞典


  假定大家有兩種或幾個(gè)詞典,而且我希望把它們?nèi)亢喜?個(gè)具備唯一鍵的詞典


  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.旋轉(zhuǎn)詞典


  1個(gè)較為常見的詞典目標(biāo)就是假如我們有個(gè)詞典而且必須旋轉(zhuǎn)他的鍵合值,鍵將成為值,而值將成為鍵


  在我們這么做時(shí),我們應(yīng)該保證并沒有反復(fù)鍵。值能夠反復(fù),但鍵不可以,以確保全部新鍵全是可以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


  接著是字符串?dāng)?shù)組的處理方法


  9.使用f字符串?dāng)?shù)組


  格式化字符串很有可能就是我們幾乎天天必須完成一項(xiàng)工作,在Python中有很多種方法來格式化字符串,使用f字符串?dāng)?shù)組是很不錯(cuò)的挑選


  #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.查驗(yàn)簽串的


  一個(gè)較為常見的任務(wù)是查驗(yàn)字符串?dāng)?shù)組能否在與字符串?dāng)?shù)組頁面上


  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.以字節(jié)數(shù)為基準(zhǔn)獲取字符串大小


  有時(shí)候,尤其是在搭建運(yùn)行內(nèi)存重要應(yīng)用軟件時(shí),大家要搞清楚我們自己的字符串?dāng)?shù)組用了是多少運(yùn)行內(nèi)存


  str1="hello"
  str2="????"
  def str_size(s):
  return len(s.encode('utf-8'))
  str_size(str1)
  str_size(str2)
  Input/Outputoperations

  最終我們來看一下輸出等方面的代碼片段


  12.查驗(yàn)文檔存不存在


  在計(jì)算機(jī)科學(xué)和大多數(shù)別的應(yīng)用軟件中,大家經(jīng)常要文本文件中獲取數(shù)據(jù)或者向在其中載入數(shù)據(jù)信息,但是做到這些,我們應(yīng)該查驗(yàn)文檔存不存在,因而,我們應(yīng)該保證編碼


  不會(huì)因?yàn)镮O不正確而停止


  #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表


  另外一種非常普遍文件互動(dòng)是以excel表中解析數(shù)據(jù),大家應(yīng)用CSV控制模塊來幫我們高效地實(shí)行該每日任務(wù)


  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


  好啦,我們一起學(xué)了13個(gè)代碼片段,這種精彩片段簡(jiǎn)易、簡(jiǎn)潔明了且高效率,不管我們?cè)谀男?yīng)用軟件行業(yè)工作中,最終會(huì)在對(duì)應(yīng)的Python工程中最少應(yīng)用其中一個(gè),因此個(gè)人收藏就是一個(gè)不錯(cuò)的選擇!


  綜上所述,這些文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128843.html

相關(guān)文章

  • DocumentFragment文檔碎片

    摘要:在樹中,文檔片段被其所有的孩子所代替。因?yàn)槲臋n片段存在于內(nèi)存中,并不在樹中,所以將子元素插入到文檔片段時(shí)不會(huì)引起頁面回流對(duì)元素位置和幾何上的計(jì)算。因此,使用文檔片段通常會(huì)起到優(yōu)化性能的作用。在里說過接口表示文檔的一部分或一段。 DocumentFragments 是DOM節(jié)點(diǎn)。它們不是主DOM樹的一部分。通常的用例是創(chuàng)建文檔片段,將元素附加到文檔片段,然后將文檔片段附加到DOM樹。在D...

    codercao 評(píng)論0 收藏0
  • 為什么標(biāo)準(zhǔn)化對(duì)網(wǎng)絡(luò)運(yùn)營有利:創(chuàng)新而非障礙

    摘要:為什么標(biāo)準(zhǔn)化對(duì)網(wǎng)絡(luò)運(yùn)營有利創(chuàng)新而不是阻礙標(biāo)準(zhǔn)化有時(shí)被視為對(duì)創(chuàng)新的攻擊。然而,以標(biāo)準(zhǔn)化為契機(jī),為自動(dòng)化系統(tǒng)和軟件建立堅(jiān)實(shí)的基礎(chǔ),有利于企業(yè)的發(fā)展。為什么標(biāo)準(zhǔn)化對(duì)網(wǎng)絡(luò)運(yùn)營有利:創(chuàng)新而不是阻礙標(biāo)準(zhǔn)化有時(shí)被視為對(duì)創(chuàng)新的攻擊。被迫放棄多語種自助餐,采用更有限的菜單,聽起來總是令人窒息。這可能是因?yàn)闃?biāo)準(zhǔn)化通常與監(jiān)管合規(guī)標(biāo)準(zhǔn)有關(guān),這些標(biāo)準(zhǔn)的官方名稱聽起來像是ISO 8076.905E,并與檢查表、審計(jì)員和...

    luckyw 評(píng)論0 收藏0
  • Java開發(fā)

    摘要:大多數(shù)待遇豐厚的開發(fā)職位都要求開發(fā)者精通多線程技術(shù)并且有豐富的程序開發(fā)調(diào)試優(yōu)化經(jīng)驗(yàn),所以線程相關(guān)的問題在面試中經(jīng)常會(huì)被提到。將對(duì)象編碼為字節(jié)流稱之為序列化,反之將字節(jié)流重建成對(duì)象稱之為反序列化。 JVM 內(nèi)存溢出實(shí)例 - 實(shí)戰(zhàn) JVM(二) 介紹 JVM 內(nèi)存溢出產(chǎn)生情況分析 Java - 注解詳解 詳細(xì)介紹 Java 注解的使用,有利于學(xué)習(xí)編譯時(shí)注解 Java 程序員快速上手 Kot...

    LuDongWei 評(píng)論0 收藏0
  • 為什么標(biāo)準(zhǔn)化對(duì)網(wǎng)絡(luò)運(yùn)營有利:創(chuàng)新而非障礙

    摘要:為什么標(biāo)準(zhǔn)化對(duì)網(wǎng)絡(luò)運(yùn)營有利創(chuàng)新而不是阻礙標(biāo)準(zhǔn)化有時(shí)被視為對(duì)創(chuàng)新的攻擊。然而,以標(biāo)準(zhǔn)化為契機(jī),為自動(dòng)化系統(tǒng)和軟件建立堅(jiān)實(shí)的基礎(chǔ),有利于企業(yè)的發(fā)展。為什么標(biāo)準(zhǔn)化對(duì)網(wǎng)絡(luò)運(yùn)營有利:創(chuàng)新而不是阻礙標(biāo)準(zhǔn)化有時(shí)被視為對(duì)創(chuàng)新的攻擊。被迫放棄多語種自助餐,采用更有限的菜單,聽起來總是令人窒息。這可能是因?yàn)闃?biāo)準(zhǔn)化通常與監(jiān)管合規(guī)標(biāo)準(zhǔn)有關(guān),這些標(biāo)準(zhǔn)的官方名稱聽起來像是ISO 8076.905E,并與檢查表、審計(jì)員和...

    suemi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<