日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作者:DataCastle

自從認(rèn)識了Python這門語言,所有的事情好像變得容易了,作為小白,小編今天就為大家總結(jié)一下python的文本處理的一些小方法。

話不多說,代碼擼起來。

——python大小寫字符互換

在進(jìn)行大小寫互換時,常用到的方法有4種,upper()、lower()、capitalize() 和title()。

str = "www.dataCASTLE.com"
print(str.upper())# 把所有字符中的小寫字母轉(zhuǎn)換成大寫字母
print(str.lower())# 把所有字符中的大寫字母轉(zhuǎn)換成小寫字母
print(str.capitalize())# 把第一個字母轉(zhuǎn)化為大寫字母,其余小寫
print(str.title())# 把每個單詞的第一個字母轉(zhuǎn)化為大寫,其余小寫 
WWW.DATACASTLE.COM
www.datacastle.com
Www.datacastle.com
Www.Datacastle.Com

還可以同時進(jìn)行大小寫互換:

s="hGdssWW678qqfdDDD777f8888sD8FJJss jjYYhVV #sh&" 
def fn(x):
 if x.is lower():
 return x.upper()
 elif x.is upper():
 return x.lower()
 else:
 return x
result=''.join([fn(r) for r in list(s)])
print(result)
HgDSSww678QQFDddd777F8888Sd8fjjSS JJyyHvv #SH&

在s當(dāng)中,不僅有大小寫字母,還有數(shù)字,符號作為干擾,運(yùn)用代碼成功將大小寫進(jìn)行了互換。

——行列互換

01 :insert進(jìn)行A行與N行的互換

python 文本處理

 

1.txt文本內(nèi)容

with open('D:\r\1.txt','r') as f:
 txt=f.readlines()
 txt.insert(4,txt[1])#第二行插入第五行的位置
 del(txt[1])#刪除原來的第二行
 print(txt)
1 A 一 
3 C 三 
4 D 四 
2 B 二 
5 E 五 
6 F 六

02: 矩陣的行列互換

matrix = [[1, 1, 1, 1],
 [2, 2, 2, 2],
 [3, 3, 3, 3],]
trans = []
for i in range(4):
 trans.Append([row[i] for row in matrix])
print('n', trans)
 [[1, 2, 3], 
 [1, 2, 3], 
 [1, 2, 3], 
 [1, 2, 3]]

關(guān)于行列互換的情況,python有一個很好用的庫pandas,其中的操作非常簡便,可以到之前的文章”十分鐘上手pandas“中查看。

——實(shí)現(xiàn)快速排序

快排的思想:首先任意選取一個數(shù)據(jù)(通常選用數(shù)組的第一個數(shù))作為關(guān)鍵數(shù)據(jù),然后將所有比它小的數(shù)都放到它前面,所有比它大的數(shù)都放到它后面,這個過程稱為一趟快速排序。

01:超級"簡短"的python實(shí)現(xiàn)的快速排序,一行代碼輕松實(shí)現(xiàn)快速排序。

def quickSort(arg):
 if(arg==[]):
 return []
 return quickSort([i for i in arg[1:] if i<=arg[0]])+[arg[0]]+quickSort([i for i in arg[1:] if i>arg[0]])
print quickSort([11,22,8,23,7,33,13,28,66,777])
[7, 8, 11, 13, 22, 23, 28, 33, 66, 777]

02:一般快排實(shí)現(xiàn)

def quicksort(array, left, right):
 #建立遞歸終止條件
 if left >= right:
 return
 low = left#low為序列左邊要移動的游標(biāo)
 high = right#high為序列右邊要移動的游標(biāo)
 key = array[low]#將左邊的數(shù)設(shè)為基準(zhǔn)元素
 while left < right:
 # 當(dāng)left與right未重合,并且比基準(zhǔn)元素要大,就將游標(biāo)向左移動
 while left < right and array[right] > key:
 right -= 1
 # 如果比基準(zhǔn)元素小,就跳出循環(huán),并且把其放在基準(zhǔn)元素左邊
 array[left] = array[right]
 # 當(dāng)low與last未重合,并且比基準(zhǔn)元素要小,就將游標(biāo)向右移動
 while left < right and array[left] <= key:
 left += 1
 # 如果比基準(zhǔn)元素大,就跳出循環(huán),并且把其放在基準(zhǔn)元素右邊
 array[right] = array[left]
 # 當(dāng)low與last相等,就是基準(zhǔn)元素的排序位置
 array[right] = key
 # 對排序好的元素左右兩邊的序列進(jìn)行遞歸
 quicksort(array, low, left - 1)
 quicksort(array, left + 1, high)
array = [11,22,8,23,7,33,13,28,66,777]
print("Quick Sort: ")
quicksort(array,0,len(array)-1)
print(array)
[7, 8, 11, 13, 22, 23, 28, 33, 66, 777]

03:《算法導(dǎo)論》中的快排程序

def quicksort(array, l, r):
 if l < r:
 q = partition(array, l, r)
 quick_sort(array, l, q - 1)
 quick_sort(array, q + 1, r)
def partition(array, l, r):
 x = array[r]
 i = l - 1
 for j in range(l, r):
 if array[j] <= x:
 i += 1
 array[i], array[j] = array[j], array[i]
 array[i + 1], array[r] = array[r], array[i+1]
 return i + 1
array = [11,22,8,23,7,33,13,28,66,777]
print("Quick Sort: ")
quicksort(array,0,len(array)-1)
print(array)
[7, 8, 11, 13, 22, 23, 28, 33, 66, 777]

04:python對list有一個內(nèi)置函數(shù)sorted()排序

a = [11,22,8,23,7,33,13,28,66,777]
b=sorted(a)
print(b)
print(a)
[7, 8, 11, 13, 22, 23, 28, 33, 66, 777]
[11, 22, 8, 23, 7, 33, 13, 28, 66, 777]

sorted雖然是使用函數(shù)方法進(jìn)行排序,但是效果非常好。使用sorted函數(shù)進(jìn)行排序,不會改變a原有的排序,并且當(dāng)文本中有其余字母符號等干擾時,也可以成功的將數(shù)字進(jìn)行排序。

——文本對齊

有些時候我們得到的文本可能是混亂的,需要進(jìn)行對齊處理,關(guān)于對齊有以下幾種方法:

python 文本處理

 

2.txt文本內(nèi)容

01:format格式化對齊

# format格式化對齊
def f1(): 
 with open("D:\r\2.txt","r") as f:
 for s in f:
 l=s.rsplit ()
 #左對齊,填充符號自定
 t='{0:<5} {1:<7} {2}'.format(l[0],l[1],l[2]) 
 print(str(t))
f1()
111 ABC 西瓜
22222 AABBC 水蜜桃
3333 CSDDGFF 香蕉
44 QQQSED 波羅蜜

02:just對齊

#just對齊
r=''
def f2():
 f=open("D:\r\2.txt","r")
 for s in f:
 l=s.rsplit() #通過指定分隔符對字符串進(jìn)行切片
 print(l[0].ljust(5," "),l[1].ljust(7," "),l[2])
f2()
111 ABC 西瓜
22222 AABBC 水蜜桃
3333 CSDDGFF 香蕉
44 QQQSED 波羅蜜

——分行輸出

01:正則表達(dá)式分行輸出

#正則表達(dá)式
a="aA1一bB2二cC3三dD4四eE5五fF6六gG7七h(yuǎn)H8八iI9九"
import re
reg=["[a-z]","[A-Z]","d","[^da-zA-Z]"]
#compile和findall一起使用,返回一個列表
for s in reg: 
 rega=re.compile(s)
 s=re.findall(rega,a)
 print("".join(s))
abcdefghi
ABCDEFGHI
123456789
一二三四五六七八九

02:string方法分行輸出

#string方法
a="aA1一bB2二cC3三dD4四eE5五fF6六gG7七h(yuǎn)H8八iI9九"
import string
ta=tb=tc=td=''
la=string.ascii_lowercase#la為小寫字母
ua=string.ascii_uppercase#ua為大寫字母
nb=string.digits#nb為0~9的數(shù)字
ub="一二三四五六七八九"
#分別從a中找出小寫、大寫字母、數(shù)字并進(jìn)行分行輸出
for s in a:
 if s in la:
 ta=ta+s
 if s in ua:
 tb=tb+s
 if s in nb:
 tc=tc+s
 if s in ub:
 td=td+s
print(ta)
print(tb)
print(tc)
print(td)
abcdefghi
ABCDEFGHI
123456789
一二三四五六七八九

好了,今天的分享就到這里。

分享到:
標(biāo)簽:python
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定