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

Python文本處理簡(jiǎn)單易懂方法解析

 更新時(shí)間:2019年12月19日 10:11:35   作者:Python探索牛  
這篇文章主要介紹了Python文本處理簡(jiǎn)單易懂方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Python文本處理簡(jiǎn)單易懂方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

話不多說(shuō),代碼擼起來(lái)。

python大小寫(xiě)字符互換

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

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

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

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)中,不僅有大小寫(xiě)字母,還有數(shù)字,符號(hào)作為干擾,運(yùn)用代碼成功將大小寫(xiě)進(jìn)行了互換。

行列互換

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

with open('D:
.txt','r') as f:
  txt=f.readlines()
  txt.insert(4,txt[1])#第二行插入第五行的位置
  del(txt[1])#刪除原來(lái)的第二行
  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('', trans)
 [[1, 2, 3], 
 [1, 2, 3], 
 [1, 2, 3], 
 [1, 2, 3]]

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

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

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

01:超級(jí)"簡(jiǎn)短"的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為序列左邊要移動(dòng)的游標(biāo)
  high = right#high為序列右邊要移動(dòng)的游標(biāo)
  key = array[low]#將左邊的數(shù)設(shè)為基準(zhǔn)元素

  while left < right:
    # 當(dāng)left與right未重合,并且比基準(zhǔn)元素要大,就將游標(biāo)向左移動(dòng)
    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)向右移動(dòng)
    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

  # 對(duì)排序好的元素左右兩邊的序列進(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對(duì)list有一個(gè)內(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)行排序,不會(huì)改變a原有的排序,并且當(dāng)文本中有其余字母符號(hào)等干擾時(shí),也可以成功的將數(shù)字進(jìn)行排序。

文本對(duì)齊

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

01:format格式化對(duì)齊

# format格式化對(duì)齊
def f1():  
  with open("D:
.txt","r") as f:
    for s in f:
      l=s.rsplit ()
      #左對(duì)齊,填充符號(hào)自定
      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對(duì)齊

#just對(duì)齊
r=''
def f2():
  f=open("D:
.txt","r")
  for s in f:
    l=s.rsplit() #通過(guò)指定分隔符對(duì)字符串進(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一起使用,返回一個(gè)列表
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為小寫(xiě)字母
ua=string.ascii_uppercase#ua為大寫(xiě)字母
nb=string.digits#nb為0~9的數(shù)字
ub="一二三四五六七八九"

#分別從a中找出小寫(xiě)、大寫(xiě)字母、數(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
一二三四五六七八九

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python?Opencv實(shí)現(xiàn)停車(chē)位識(shí)別思路詳解

    python?Opencv實(shí)現(xiàn)停車(chē)位識(shí)別思路詳解

    這篇文章主要介紹了Opencv實(shí)現(xiàn)停車(chē)位識(shí)別,本文通過(guò)示例代碼場(chǎng)景分析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Python帶參數(shù)的裝飾器運(yùn)行原理解析

    Python帶參數(shù)的裝飾器運(yùn)行原理解析

    這篇文章主要介紹了Python帶參數(shù)的裝飾器運(yùn)行原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python進(jìn)程池Pool中apply方法與apply_async方法的區(qū)別

    python進(jìn)程池Pool中apply方法與apply_async方法的區(qū)別

    這篇文章主要介紹了python進(jìn)程池Pool中apply方法與apply_async方法的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python實(shí)現(xiàn)圖像去霧效果的示例代碼

    Python實(shí)現(xiàn)圖像去霧效果的示例代碼

    本文將利用《bringing old photos back to life》 的開(kāi)源代碼,并在此基礎(chǔ)上進(jìn)行修改,從而實(shí)現(xiàn)圖像去霧的效果,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-02-02
  • Python批量修改文件名,文件再多也只要一秒

    Python批量修改文件名,文件再多也只要一秒

    大家好,本篇文章主要講的是Python批量修改文件名,文件再多也只要一秒,感興趣的同學(xué)趕快來(lái)看一看,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 在pyqt5中QLineEdit里面的內(nèi)容回車(chē)發(fā)送的實(shí)例

    在pyqt5中QLineEdit里面的內(nèi)容回車(chē)發(fā)送的實(shí)例

    今天小編就為大家分享一篇在pyqt5中QLineEdit里面的內(nèi)容回車(chē)發(fā)送的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Python進(jìn)程使用內(nèi)存后不釋放的解決

    Python進(jìn)程使用內(nèi)存后不釋放的解決

    這篇文章主要介紹了Python進(jìn)程使用內(nèi)存后不釋放的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • pandas如何獲取某個(gè)數(shù)據(jù)的行號(hào)

    pandas如何獲取某個(gè)數(shù)據(jù)的行號(hào)

    這篇文章主要介紹了pandas如何獲取某個(gè)數(shù)據(jù)的行號(hào)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python 處理圖片像素點(diǎn)的實(shí)例

    Python 處理圖片像素點(diǎn)的實(shí)例

    今天小編就為大家分享一篇Python 處理圖片像素點(diǎn)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python的格式化輸出(format,%)實(shí)例詳解

    python的格式化輸出(format,%)實(shí)例詳解

    Python中格式化字符串目前有兩種陣營(yíng):%和format,哪一種比較適合我們使用呢?下面腳本之家小編給大家介紹下python的格式化輸出(format,%)實(shí)例詳解,感興趣的朋友一起看看吧
    2018-06-06

最新評(píng)論