亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

enumerate和operator函數怎么在python中使用

發布時間:2021-04-30 16:22:26 來源:億速云 閱讀:162 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關enumerate和operator函數怎么在python中使用,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

python可以做什么

Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。

enumerate()

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

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

使用enumerate:

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

itemgetter()

這個和下面的函數在operator庫中,通常用在排序中。例如要對一個tuple的列表進行排序,找到第二個值最小的那個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

后來,進化了,這樣做:

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

這樣看起來好多了,可是我發現人家的代碼里是這樣做的:

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

attgetter()

這個函數和上面的函數很像,不同的是,上面是用索引獲取對應值,而這里使用屬性來獲取對應值,就像dict一樣。

假如我們有個類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)

我們有一個學生的實例的列表students,需要從里面找到分最高的。最簡介的做法是:

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()

一看這個函數名,就知道是用來統計個數的~返回的是一個dict,key是各個元素,value是對應的個數。一開始,我并不知道這個函數,都是這樣統計的:

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

現在,直接一句話:

counter=collections.Counter(list)
print counter

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

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

  • counter.most_common(n) 返回數目最多的前n個元素和對應個數

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

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

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

  • counter.clear() 重置counter

  • del counter[e]刪除元素e和它的紀錄

  • 算數操作:+和- ,對應元素個數加減;|和&,兩個counter的并集和交集

關于enumerate和operator函數怎么在python中使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天门市| 罗平县| 崇义县| 乡城县| 蒙阴县| 枝江市| 靖宇县| 专栏| 都江堰市| 漯河市| 大冶市| 土默特左旗| 靖州| 鲁山县| 龙井市| 松溪县| 茂名市| 台南市| 长兴县| 正阳县| 五峰| 苗栗县| 都安| 体育| 榆中县| 阿城市| 徐州市| 通城县| 亳州市| 沭阳县| 新宾| 太保市| 永川市| 颍上县| 通化县| 伊通| 高州市| 姜堰市| 勐海县| 江山市| 资中县|