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

Python中的sorted函數(shù)應(yīng)用及文件操作詳解

 更新時(shí)間:2023年12月26日 09:30:12   作者:wrr-cat  
這篇文章主要介紹了Python中的sorted函數(shù)應(yīng)用及文件操作詳解,python只能將字符串寫(xiě)入到文本文件,要將數(shù)值數(shù)據(jù)存儲(chǔ)到文本本件中,必須先試用函數(shù)str()將其轉(zhuǎn)換為字符串格式,需要的朋友可以參考下

Python的sorted函數(shù)及文件操作

眾所周知,def __cmp__ 作為方法存在,用sort對(duì)實(shí)例進(jìn)行排序時(shí),會(huì)用到class 中的__cmp__。但是,在python3中,取消了 sorted對(duì)cmp的支持。

python3 中有關(guān)排序的sorted方法如下:

sorted(iterable,key=None,reverse=False)

其中,key 接受一個(gè)函數(shù),這個(gè)函數(shù)只接受一個(gè)元素,默認(rèn)為 None。

reverse是一個(gè)布爾值。如果設(shè)置為 True,列表元素將被倒序排列,默認(rèn)為 False。

下面著重介紹 key 的作用原理:key 指定一個(gè)接收一個(gè)參數(shù)的函數(shù),這個(gè)函數(shù)用于從每個(gè)元素中提取一個(gè)用于比較的關(guān)鍵字。默認(rèn)值為 None 。

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave','B', 10)]
sorted(students,key=lambda s: x[2]) #按照年齡來(lái)排序

結(jié)果:

[('dave','B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

這是一個(gè)字符串排序,排序規(guī)則:小寫(xiě)<大寫(xiě)<奇數(shù)<偶數(shù)

s = 'asdf234GDSdsf23'

原理:先比較元組的第一個(gè)值,如果相等就比較元組的下一個(gè)值,以此類(lèi)推。

先看一下 Boolean value 的排序:print(sorted([True,Flase]))===>結(jié)果[False,True]

Boolean 的排序會(huì)將 False 排在前,True 排在后。

  • x.isdigit()的作用是把數(shù)字放在前邊,字母放在后邊.
  • x.isdigit() and int(x) % 2 == 0 的作用是保證奇數(shù)在前,偶數(shù)在后。
  • x.isupper()的作用是在前面基礎(chǔ)上,保證字母小寫(xiě)在前大寫(xiě)在后.
  • 最后的 x 表示在前面基礎(chǔ)上,對(duì)所有類(lèi)別數(shù)字或字母排序。

最后結(jié)果:

addffssDGS33224

一道面試題:

list1=[7, -8, 5, 4, 0, -2, -5]
#要求1.正數(shù)在前負(fù)數(shù)在后 2.正數(shù)從小到大 3.負(fù)數(shù)從大到小
sorted(list1,key=lambda x:(x<0,abs(x)))

解題思路:先按照正負(fù)排先后,再按照大小排先后。

Python下文件操作與Java差不多。打開(kāi)文件的模式有三種:

- r,只讀模式(默認(rèn))。

- w,只寫(xiě)模式?!静豢勺x;不存在則創(chuàng)建;存在則刪除內(nèi)容;因?yàn)闀?huì)清空原有文件的內(nèi)容,一定要慎用】

- a,追加模式?!究勺x; 不存在則創(chuàng)建;存在則只追加內(nèi)容;】

注意最后要記得關(guān)閉文件:f.close()

python只能將字符串寫(xiě)入到文本文件。要將數(shù)值數(shù)據(jù)存儲(chǔ)到文本本件中,必須先試用函數(shù)str()將其轉(zhuǎn)換為字符串格式。  

#r模式(只讀模式)
f = open('yesterday',encoding='utf-8')
data = f.read()
f.close()
print(data)
#只讀文件的前5行:
f = open('yesterday','r',encoding='utf-8')
for i in range(5):
    print(f.readline())
#以列表的方式讀取這個(gè)文件
f = open('yesterday','r',encoding='utf-8')
for line in f.readlines():
    print(line)
#對(duì)文件的第3行,做一個(gè)特殊的打?。ㄟ@種方式比較低效,因?yàn)樗鼤?huì)先把文件全部讀取到內(nèi)存中,文件較大時(shí)會(huì)很影響性能)
f = open('yesterday','r',encoding='utf-8')
for index,line in enumerate(f.readlines()):
    if index == 2:
        print('-----測(cè)試線----',line)
        continue
    print(line)
#比較高效的,逐行讀取文件內(nèi)容,因?yàn)樗且恍幸恍械娜プx取文件,不會(huì)先把文件一次性全部讀取到內(nèi)存中
f = open('yesterday','r',encoding='utf-8')
for line in f:
    print(line)
#比較高效的,對(duì)文件的3三行進(jìn)行過(guò)特殊打印
f = open('yesterday','r',encoding='utf-8')
count = 0
for line in f:
    if count == 2:
        print('------測(cè)試線----:',line)
    count += 1
    print(line)
#w模式(如果沒(méi)有就創(chuàng)建文件,如果有就清空文件,一定要慎用)
f = open('yesterday','w',encoding='utf-8')
f.write("這就是一行測(cè)試\n")
f.write("測(cè)試2\n")
f.write("測(cè)試3")
#a模式(追加模式,如果沒(méi)有就創(chuàng)建文件,如果有就把內(nèi)容追加進(jìn)去)
f = open('yesterday','a',encoding='utf-8')
f.write("test1\n")
#文件光標(biāo)的操作
f = open('yesterday','r',encoding='utf-8')
#獲得文件的光標(biāo)
print(f.tell())
print(f.readline())
print(f.tell())
#回到最開(kāi)始的位置(也可以指定一個(gè)位置,前提是你得知道你去往的字符具體在哪個(gè)位置才行)
f.seek(0)
#顯示文件的編碼
print(f.encoding)
#顯示文件句柄的編號(hào)(我并不確定這個(gè)說(shuō)法是否正確,用到時(shí)請(qǐng)仔細(xì)去查一下)
print(f.fileno())
#測(cè)試是否是一個(gè)終端設(shè)備文件
print(f.isatty())
#把緩存的內(nèi)容刷新到硬盤(pán)(進(jìn)度條那個(gè)腳本里有寫(xiě)一個(gè)示例)
f.flush()
#指定文件從哪里開(kāi)始截?cái)?,如果沒(méi)有參數(shù),默認(rèn)從0開(kāi)始等于清空了這個(gè)文件
#f.truncate()
#r+ 模式(讀,追加模式)
f = open('yesterday','r+',encoding='utf-8')
data = f.read()
print(data)
f.write("test...\n")
#還有 w+寫(xiě)讀模式, a+追加讀模式,這一般不用,真用到了再去了解下吧
#rb 模式,以二進(jìn)制的方式讀取這個(gè)文件
#wb 模式,二進(jìn)制寫(xiě)
'''
'''
#with語(yǔ)句(很實(shí)用,記得要經(jīng)常用喲~,在《Python編程從入門(mén)到實(shí)戰(zhàn)》那本書(shū)里的文件與異常那一章有詳細(xì)用法)
#為了避免打開(kāi)文件后忘記關(guān)閉,可以通過(guò)管理上下文,即:
with open('log','r') as f:
    ...
#如此方式,當(dāng)with代碼塊執(zhí)行完畢時(shí),內(nèi)部會(huì)自動(dòng)關(guān)閉并釋放文件資源。
#在Python 2.7 后,with又支持同時(shí)對(duì)多個(gè)文件的上下文進(jìn)行管理,即:
with open('log1') as obj1, open('log2') as obj2:
    pass

到此這篇關(guān)于Python中的sorted函數(shù)應(yīng)用及文件操作詳解的文章就介紹到這了,更多相關(guān)Python的sorted函數(shù)及文件操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python函數(shù)的定義與調(diào)用方法實(shí)例

    Python函數(shù)的定義與調(diào)用方法實(shí)例

    Python 中函數(shù)的應(yīng)用非常廣泛,函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段,這篇文章主要給大家介紹了關(guān)于Python函數(shù)的定義與調(diào)用的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Django REST Framework 分頁(yè)(Pagination)詳解

    Django REST Framework 分頁(yè)(Pagination)詳解

    這篇文章主要介紹了Django REST Framework 分頁(yè)(Pagination)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python給定一個(gè)句子倒序輸出單詞以及字母的方法

    Python給定一個(gè)句子倒序輸出單詞以及字母的方法

    今天小編就為大家分享一篇Python給定一個(gè)句子倒序輸出單詞以及字母的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 插入排序_Python與PHP的實(shí)現(xiàn)版(推薦)

    插入排序_Python與PHP的實(shí)現(xiàn)版(推薦)

    下面小編就為大家?guī)?lái)一篇插入排序_Python與PHP的實(shí)現(xiàn)版(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • OpenCV圖像縮放之cv.resize()函數(shù)詳解

    OpenCV圖像縮放之cv.resize()函數(shù)詳解

    resize函數(shù)opencv中專(zhuān)門(mén)用來(lái)調(diào)整圖像大小的函數(shù),下面這篇文章主要給大家介紹了關(guān)于OpenCV圖像縮放之cv.resize()函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 將Django項(xiàng)目部署到CentOs服務(wù)器中

    將Django項(xiàng)目部署到CentOs服務(wù)器中

    今天小編就為大家分享一篇關(guān)于將Django項(xiàng)目部署到CentOs服務(wù)器中的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • 在PyTorch中實(shí)現(xiàn)可解釋的神經(jīng)網(wǎng)絡(luò)模型的方法詳解

    在PyTorch中實(shí)現(xiàn)可解釋的神經(jīng)網(wǎng)絡(luò)模型的方法詳解

    這篇文章主要為大家介紹在PyTorch如何中實(shí)現(xiàn)可解釋的神經(jīng)網(wǎng)絡(luò)模型,并為您提供使用簡(jiǎn)單的 PyTorch 接口實(shí)現(xiàn)最先進(jìn)的基于概念的模型的工具,需要的朋友可以參考下
    2023-06-06
  • Python+wxPython實(shí)現(xiàn)文件名批量處理

    Python+wxPython實(shí)現(xiàn)文件名批量處理

    在日常的文件管理中,我們經(jīng)常需要對(duì)文件進(jìn)行批量處理以符合特定的命名規(guī)則或需求,本文主要介紹了如何使用wxPython進(jìn)行文件夾中文件名的批量處理,需要的可以參考下
    2024-04-04
  • Python解析pcap文件示例

    Python解析pcap文件示例

    這篇文章主要為大家介紹了Python解析pcap文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • pygame游戲之旅 按鈕上添加文字的方法

    pygame游戲之旅 按鈕上添加文字的方法

    這篇文章主要為大家詳細(xì)介紹了pygame游戲之旅的第11篇,按鈕上添加文字的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11

最新評(píng)論