最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

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

結(jié)果:

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

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

s = 'asdf234GDSdsf23'

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

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

Boolean 的排序會將 False 排在前,True 排在后。

  • x.isdigit()的作用是把數(shù)字放在前邊,字母放在后邊.
  • x.isdigit() and int(x) % 2 == 0 的作用是保證奇數(shù)在前,偶數(shù)在后。
  • x.isupper()的作用是在前面基礎(chǔ)上,保證字母小寫在前大寫在后.
  • 最后的 x 表示在前面基礎(chǔ)上,對所有類別數(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差不多。打開文件的模式有三種:

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

- w,只寫模式?!静豢勺x;不存在則創(chuàng)建;存在則刪除內(nèi)容;因?yàn)闀蹇赵形募膬?nèi)容,一定要慎用】

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

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

python只能將字符串寫入到文本文件。要將數(shù)值數(shù)據(jù)存儲到文本本件中,必須先試用函數(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())
#以列表的方式讀取這個文件
f = open('yesterday','r',encoding='utf-8')
for line in f.readlines():
    print(line)
#對文件的第3行,做一個特殊的打?。ㄟ@種方式比較低效,因?yàn)樗鼤劝盐募孔x取到內(nèi)存中,文件較大時會很影響性能)
f = open('yesterday','r',encoding='utf-8')
for index,line in enumerate(f.readlines()):
    if index == 2:
        print('-----測試線----',line)
        continue
    print(line)
#比較高效的,逐行讀取文件內(nèi)容,因?yàn)樗且恍幸恍械娜プx取文件,不會先把文件一次性全部讀取到內(nèi)存中
f = open('yesterday','r',encoding='utf-8')
for line in f:
    print(line)
#比較高效的,對文件的3三行進(jìn)行過特殊打印
f = open('yesterday','r',encoding='utf-8')
count = 0
for line in f:
    if count == 2:
        print('------測試線----:',line)
    count += 1
    print(line)
#w模式(如果沒有就創(chuàng)建文件,如果有就清空文件,一定要慎用)
f = open('yesterday','w',encoding='utf-8')
f.write("這就是一行測試\n")
f.write("測試2\n")
f.write("測試3")
#a模式(追加模式,如果沒有就創(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())
#回到最開始的位置(也可以指定一個位置,前提是你得知道你去往的字符具體在哪個位置才行)
f.seek(0)
#顯示文件的編碼
print(f.encoding)
#顯示文件句柄的編號(我并不確定這個說法是否正確,用到時請仔細(xì)去查一下)
print(f.fileno())
#測試是否是一個終端設(shè)備文件
print(f.isatty())
#把緩存的內(nèi)容刷新到硬盤(進(jìn)度條那個腳本里有寫一個示例)
f.flush()
#指定文件從哪里開始截?cái)啵绻麤]有參數(shù),默認(rèn)從0開始等于清空了這個文件
#f.truncate()
#r+ 模式(讀,追加模式)
f = open('yesterday','r+',encoding='utf-8')
data = f.read()
print(data)
f.write("test...\n")
#還有 w+寫讀模式, a+追加讀模式,這一般不用,真用到了再去了解下吧
#rb 模式,以二進(jìn)制的方式讀取這個文件
#wb 模式,二進(jìn)制寫
'''
'''
#with語句(很實(shí)用,記得要經(jīng)常用喲~,在《Python編程從入門到實(shí)戰(zhàn)》那本書里的文件與異常那一章有詳細(xì)用法)
#為了避免打開文件后忘記關(guān)閉,可以通過管理上下文,即:
with open('log','r') as f:
    ...
#如此方式,當(dāng)with代碼塊執(zhí)行完畢時,內(nèi)部會自動關(guān)閉并釋放文件資源。
#在Python 2.7 后,with又支持同時對多個文件的上下文進(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

香港| 乐都县| 页游| 全州县| 淮阳县| 措勤县| 榆树市| 通化市| 巴林左旗| 开平市| 望城县| 沂源县| 大悟县| 安徽省| 武陟县| 宁海县| 鹰潭市| 天门市| 长汀县| 积石山| 鲜城| 大宁县| 台东县| 新邵县| 北安市| 佛坪县| 桐梓县| 永福县| 洞口县| 兴仁县| 怀来县| 锦州市| 宁城县| 玉环县| 昌宁县| 咸阳市| 平顺县| 调兵山市| 湘乡市| 云梦县| 徐汇区|