欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解python數(shù)據(jù)結(jié)構(gòu)和算法

 更新時(shí)間:2019年04月18日 08:48:29   作者:goodxin_ie  
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)和算法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1.刪除序列相同元素并保持順序

如果僅僅就是想消除重復(fù)元素,通??梢院?jiǎn)單的構(gòu)造一個(gè)集合,利用集合之間元素互不相同的特性就可以消除重復(fù),但是這種方法生成的結(jié)果中元素的位置會(huì)被打亂。下面是我們的解決方案:

def dedupe(items, key=None):
  seen = set()
  for item in items:
    val = item if key is None else key(item)
    if val not in seen:
      yield item
      seen.add(val)

主要思想就是構(gòu)造一個(gè)集合,然后遍歷該列表,如果當(dāng)前元素不存在集合中就將該元素返回。

yiled時(shí)python中構(gòu)造生成器的關(guān)鍵字。碰到y(tǒng)iled就返回該變量,下一次則從yiled之后的語(yǔ)句開(kāi)始執(zhí)行。

使用示例:

注:我們構(gòu)造的dedupe函數(shù)返回的是生成器對(duì)象,需要用list轉(zhuǎn)化成可直接輸出的列表。

該函數(shù)也可以用來(lái)文件去除重復(fù)行:

with open('my.log','r') as f:
  for item in dedupe(f):
    print(item)

 2.過(guò)濾元素序列

問(wèn)題--------你有一個(gè)數(shù)據(jù)序列,想利用一些規(guī)則從中提取出需要的值或者是縮短序列

方法一:最簡(jiǎn)單的過(guò)濾序列元素的方法就是使用列表推導(dǎo)。比如我們想從下列列表中提取正數(shù):

mylist = [1, 4, -5, 10, -7, 2, 3, -1]
newlist = [n for n in mylist if n > 0]
print(newlist)

方法二:生成器迭代

使用列表推導(dǎo)的一個(gè)潛在缺陷就是如果輸入非常大的時(shí)候會(huì)產(chǎn)生一個(gè)非常大的結(jié)果集,占用大量?jī)?nèi)存。 如果你對(duì)內(nèi)存比較敏感,那么你可以使用生成器表達(dá)式迭代產(chǎn)生過(guò)濾的元素。

mylist = [1, 4, -5, 10, -7, 2, 3, -1]
pos = (n for n in mylist if n > 0)
print(pos) 
print(list(pos)) #迭代器不可以直接輸出,需要轉(zhuǎn)換成list才可以看到結(jié)果

運(yùn)行結(jié)果:

方法三:過(guò)濾規(guī)則比較復(fù)雜,不能簡(jiǎn)單的在列表推導(dǎo)或者生成器表達(dá)式中表達(dá)出來(lái)時(shí)需要考慮使用內(nèi)建的filter函數(shù)。這時(shí)候你可以將過(guò)濾代碼放到一個(gè)函數(shù)中, 然后使用內(nèi)建的 filter() 函數(shù)。示例如下:

values = ['1', '2', '-3', '-', '4', 'N/A', '5']
def is_int(val):
  try:
    x = int(val)
    return True
  except ValueError:
    return False
ivals = list(filter(is_int, values))
print(ivals)
# Outputs ['1', '2', '-3', '4', '5']

以上所述是小編給大家介紹的python數(shù)據(jù)結(jié)構(gòu)和算法詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Python Numpy運(yùn)行報(bào)錯(cuò):IndexError: too many indices for array的分析及解決

    Python Numpy運(yùn)行報(bào)錯(cuò):IndexError: too many in

    在使用Numpy進(jìn)行數(shù)組操作時(shí),經(jīng)常會(huì)遇到各種錯(cuò)誤,其中,IndexError: too many indices for array是一種常見(jiàn)的錯(cuò)誤,它通常發(fā)生在嘗試使用一個(gè)過(guò)多維度的索引來(lái)訪問(wèn)一個(gè)較低維度的數(shù)組時(shí),本文介紹了Python Numpy報(bào)錯(cuò)的解決辦法,需要的朋友可以參考下
    2024-07-07
  • python 8種必備的gui庫(kù)

    python 8種必備的gui庫(kù)

    這篇文章主要介紹了python 8種必備的gui庫(kù),幫助大家更好的進(jìn)行python 開(kāi)發(fā),感興趣的朋友可以了解下
    2020-08-08
  • 分享8個(gè)非常流行的 Python 可視化工具包

    分享8個(gè)非常流行的 Python 可視化工具包

    喜歡用 Python 做項(xiàng)目的小伙伴不免會(huì)遇到這種情況:做圖表時(shí),用哪種好看又實(shí)用的可視化工具包呢?今天小編給大家分享8個(gè)非常流行的 Python 可視化工具包,需要的朋友可以參考下
    2019-06-06
  • Python爬蟲(chóng)必備之Xpath簡(jiǎn)介及實(shí)例講解

    Python爬蟲(chóng)必備之Xpath簡(jiǎn)介及實(shí)例講解

    xpath是一種在XML文檔中定位元素的語(yǔ)言,常用于xml、html文件解析,比css選擇器使用方便,下面這篇文章主要給大家介紹了關(guān)于Python爬蟲(chóng)必備之Xpath簡(jiǎn)介及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • python dict 相同key 合并value的實(shí)例

    python dict 相同key 合并value的實(shí)例

    今天小編就為大家分享一篇python dict 相同key 合并value的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 使用numpy對(duì)數(shù)組求平均時(shí)如何忽略nan值

    使用numpy對(duì)數(shù)組求平均時(shí)如何忽略nan值

    這篇文章主要介紹了使用numpy對(duì)數(shù)組求平均時(shí)如何忽略nan值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • python中將字典改造為對(duì)象的方法

    python中將字典改造為對(duì)象的方法

    這篇文章主要介紹了python中將字典改造為對(duì)象的方法,在實(shí)際項(xiàng)目中,當(dāng)使用json模塊加載一個(gè)深度很深的字典類(lèi)型的json文件時(shí),使用字典的訪問(wèn)方式,將會(huì)出現(xiàn)很多中括號(hào),即不直觀也不美觀,可以將這個(gè)字典轉(zhuǎn)化為對(duì)象,使得可以用.的方式訪問(wèn),需要的朋友可以參考下
    2023-11-11
  • Python中staticmethod和classmethod的作用與區(qū)別

    Python中staticmethod和classmethod的作用與區(qū)別

    今天小編就為大家分享一篇關(guān)于Python中staticmethod和classmethod的作用與區(qū)別,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • Python的join函數(shù)的用法及實(shí)例

    Python的join函數(shù)的用法及實(shí)例

    這篇文章主要詳細(xì)介紹了python的join函數(shù)的用法及實(shí)例,文章中有詳細(xì)的代碼講解,有一定的參考價(jià)值,需要的同學(xué)可以參考閱讀
    2023-04-04
  • 基于Pytorch實(shí)現(xiàn)邏輯回歸

    基于Pytorch實(shí)現(xiàn)邏輯回歸

    這篇文章主要為大家詳細(xì)介紹了基于Pytorch實(shí)現(xiàn)邏輯回歸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評(píng)論