日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python的10個神奇的技巧

盡管從表面上看,Python似乎是任何人都可以學(xué)習(xí)的一種簡單語言,但確實如此,許多人可能驚訝地知道一個人可以熟練掌握該語言。 Python是其中的一門很容易學(xué)習(xí)的東西,但可能很難掌握。 在Python中,通常有多種處理方法,但是很容易做錯事情,或者重新發(fā)明標準庫并浪費時間,這僅僅是因為您不知道模塊的存在。

不幸的是,Python標準庫是一個巨大的野獸,此外,其生態(tài)系統(tǒng)絕對是巨大的。 盡管可能有200萬千兆字節(jié)的Python模塊,但是您可以使用通常與Python中的科學(xué)計算相關(guān)的標準庫和軟件包學(xué)習(xí)一些有用的技巧。

№1:反向串

盡管看似基本,但使用char循環(huán)反轉(zhuǎn)字符串可能非常繁瑣且令人討厭。 幸運的是,Python包含一個簡單的內(nèi)置操作來精確地執(zhí)行此任務(wù)。 為此,我們只需訪問字符串上的索引::-1。

 
 
 
  1. a = "!dlrow olleH"
  2. backward = a[::-1]

№2:變暗作為變量

在大多數(shù)語言中,為了將數(shù)組放入一組變量中,我們需要迭代遍歷值或按位置訪問暗點,如下所示:

 
 
 
  1. firstdim = array[1]

但是,在Python中,有一種更酷的方法。 為了將值列表更改為變量,我們可以簡單地將變量名設(shè)置為等于數(shù)組,且數(shù)組長度相同:

 
 
 
  1. array = [5, 10, 15, 20]
  2. five, ten, fift, twent = array

№3:Itertools

如果您打算花任何時間在Python上花費任何時間,那么您肯定會想要熟悉itertools。 Itertools是標準庫中的一個模塊,可讓您不斷解決迭代問題。 它不僅使編寫復(fù)雜的循環(huán)變得容易得多,而且使您的代碼更快,更簡潔。 這只是Itertools用法的一個示例,但有數(shù)百個:

 
 
 
  1. c = [[1, 2], [3, 4], [5, 6]]
  2. # Let's convert this matrix to a 1 dimensional list.import itertools as
  3. itnewlist = list(it.chain.from_iterable(c))

№4:智能開箱

迭代地解壓縮值可能會非常耗時且費力。 幸運的是,Python有幾種很酷的方式可以解壓縮列表! 一個例子是*,它將填充未分配的值并將它們添加到變量名下的新列表中。

 
 
 
  1. a, *b, c = [1, 2, 3, 4, 5]

№5:枚舉

如果您不了解枚舉,則可能應(yīng)該熟悉它。 枚舉將允許您獲取列表中某些值的索引。 當使用數(shù)組而不是數(shù)據(jù)框架時,這在數(shù)據(jù)科學(xué)中特別有用。

 
 
 
  1. for i,w in enumerate(array):
  2. print(i,w)

№6:名字切片

在Python中拆分列表非常簡單! 可以使用各種各樣的出色工具,但是肯定有價值的一個功能是可以命名列表的片段。 這對于Python中的線性代數(shù)特別有用。

 
 
 
  1. a = [0, 1, 2, 3, 4, 5]
  2. LASTTHREE = slice(-3, None)
  3. slice(-3, None, None)
  4. print(a[LASTTHREE])

№7:組相鄰列表

當然可以在for循環(huán)中相當容易地對相鄰循環(huán)進行分組,特別是通過使用zip(),但這當然不是最好的處理方式。 為了使事情變得更加輕松和快捷,我們可以使用zip編寫一個lambda表達式,該表達式將對我們的相鄰列表進行分組,如下所示:

 
 
 
  1. a = [1, 2, 3, 4, 5, 6]
  2. group_adjacent = lambda a, k: zip(*([iter(a)] * k))
  3. group_adjacent(a, 3)
  4. [(1, 2, 3), (4, 5, 6)]
  5. group_adjacent(a, 2)
  6. [(1, 2), (3, 4), (5, 6)]
  7. group_adjacent(a, 1)

№8:生成器的next()迭代

在編程的大多數(shù)正常情況下,我們可以使用一個計數(shù)器來訪問一個索引并獲取我們的倉位號,該計數(shù)器將只是添加到以下值的值:

 
 
 
  1. array1 = [5, 10, 15, 20]
  2. array2 = (x ** 2 for x in range(10))
  3. counter = 0for i in array1:
  4. # This code wouldn't work because 'i' is not in array2.
  5. # i = array2[i]
  6. i = array2[counter]
  7. # ^^^ This code would because we are accessing the position of i

但是,我們可以使用next()代替它。 Next使用一個迭代器,該迭代器將當前位置存儲在內(nèi)存中,并在后臺遍歷列表。

 
 
 
  1. g = (x ** 2 for x in range(10))
  2. print(next(g))
  3. print(next(g))

№9:Counter

標準庫中另一個很棒的模塊是集合,我今天想向您介紹的是集合中的計數(shù)器。 使用Counter,我們可以輕松獲得列表的計數(shù)。 這對于獲取數(shù)據(jù)中的值總數(shù),獲取數(shù)據(jù)的空計數(shù)以及查看數(shù)據(jù)的唯一值很有用。 我知道你在想什么

"為什么不只使用Pandas?"

這當然是正確的觀點。 但是,使用Pandas進行自動化無疑會更加困難,并且只是在部署算法時需要將其添加到虛擬環(huán)境中的另一個依賴項。 此外,Python中的計數(shù)器類型具有Pandas系列所沒有的許多功能,這使其在某些情況下更加有用。

 
 
 
  1. A = collections.Counter([1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 6, 7])
  2. A
  3. Counter({3: 4, 1: 2, 2: 2, 4: 1, 5: 1, 6: 1, 7: 1})
  4. A.most_common(1)
  5. [(3, 4)]
  6. A.most_common(3)
  7. [(3, 4), (1, 2), (2, 2)]

№10:出隊

收集模塊中另一個很棒的事情是出隊。 看看我們可以用這種類型做的所有整潔的事情!

 
 
 
  1. import collections
  2. Q = collections.deque()
  3. Q.append(1)
  4. Q.appendleft(2)
  5. Q.extend([3, 4])
  6. Q.extendleft([5, 6])
  7. Q.pop()
  8. Q.popleft()
  9. Q.rotate(3)
  10. Q.rotate(-3)
  11. print(Q)

文章標題:Python的10個神奇的技巧
鏈接分享:http://www.5511xx.com/article/codesdi.html