真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

enumerate和operator函數(shù)怎么在python中使用-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)enumerate和operator函數(shù)怎么在python中使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

成都創(chuàng)新互聯(lián)主營(yíng)潘集網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都App制作,潘集h5微信小程序開發(fā)搭建,潘集網(wǎng)站營(yíng)銷推廣歡迎潘集等地區(qū)企業(yè)咨詢python可以做什么

Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。

enumerate()

這個(gè)函數(shù)主要用于既要遍歷元素又要記下索引。通常我們都會(huì)這樣寫(不能再笨拙了):

for i in range(0,len(list)):
  print i,list[i]

使用enumerate:

for index,text in enumerate(list):
  print index,text

itemgetter()

這個(gè)和下面的函數(shù)在operator庫(kù)中,通常用在排序中。例如要對(duì)一個(gè)tuple的列表進(jìn)行排序,找到第二個(gè)值最小的那個(gè)tuple。我一開始這樣做:

list_of_tuples = [(1,2), (3,4), (5,0)]
min_tuple = None
minimum = sys.maxint
for pair in list_of_tuples:
  x,y = pair
  if y < minimum:
    min_tuple = pair
print min_tuple

后來,進(jìn)化了,這樣做:

def snd(pair):
  x,y = pair
  return y
list_of_tuples = [(1,2), (3,4), (5,0)]
min(list_of_tuples, key=snd)

這樣看起來好多了,可是我發(fā)現(xiàn)人家的代碼里是這樣做的:

import operator
list_of_tuples = [(1,2), (3,4), (5,0)]
min(list_of_tuples, key=operator.itemgetter(1)) #use 2nd value

attgetter()

這個(gè)函數(shù)和上面的函數(shù)很像,不同的是,上面是用索引獲取對(duì)應(yīng)值,而這里使用屬性來獲取對(duì)應(yīng)值,就像dict一樣。

假如我們有個(gè)類Student:

class Student(object):
  def __init__(self, id, name, marks):
    self.id = id
      self.name = name
      self.marks = marks
  def __str__(self):
    return '%s has marks %s' %(self.name, self.marks)

我們有一個(gè)學(xué)生的實(shí)例的列表students,需要從里面找到分最高的。最簡(jiǎn)介的做法是:

students = [ Student(0, 'Foo', 30), Student(1, 'Bar', 95), Student(2, 'Baz', 80)]
best_student = max(students, key=operator.attrgetter('marks')) # don't forget the quotes

collections.Counter()

一看這個(gè)函數(shù)名,就知道是用來統(tǒng)計(jì)個(gè)數(shù)的~返回的是一個(gè)dict,key是各個(gè)元素,value是對(duì)應(yīng)的個(gè)數(shù)。一開始,我并不知道這個(gè)函數(shù),都是這樣統(tǒng)計(jì)的:

d={}
for text in list:
  if not text in d.keys():
    d[text]=1
  else:
    d[text]+=1
print d

現(xiàn)在,直接一句話:

counter=collections.Counter(list)
print counter

之后獲取各元素的個(gè)數(shù),使用方法同一般的dict。如果增加元素e1,e2和對(duì)應(yīng)個(gè)數(shù),直接counter.update({e1=4,e2=3})就可以。

此外,這個(gè)Counter不僅用來數(shù)數(shù),還有好多函數(shù)方便各種操作,例如:

  • counter.most_common(n) 返回?cái)?shù)目最多的前n個(gè)元素和對(duì)應(yīng)個(gè)數(shù)

  • a.substract(b) 返回一個(gè)Counter,Counter a減去Counter b,多的元素個(gè)數(shù)為正值,少的元素個(gè)數(shù)為負(fù)值

  • counter.elements() 返回一個(gè)element列表,其中每個(gè)元素有多少個(gè)就重復(fù)多少次

  • counter.values() 返回個(gè)數(shù)列表,通常配合sum(counter.values())

  • counter.clear() 重置counter

  • del counter[e]刪除元素e和它的紀(jì)錄

  • 算數(shù)操作:+和- ,對(duì)應(yīng)元素個(gè)數(shù)加減;|和&,兩個(gè)counter的并集和交集

關(guān)于enumerate和operator函數(shù)怎么在python中使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


文章標(biāo)題:enumerate和operator函數(shù)怎么在python中使用-創(chuàng)新互聯(lián)
URL鏈接:http://weahome.cn/article/hosoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部