日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

jsoncpp去掉多余字符_Python超详细的字符串用法大全

發(fā)布時間:2023/12/19 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsoncpp去掉多余字符_Python超详细的字符串用法大全 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文要點

  • 字符串拼接

  • 拆分含有多種分隔符的字符串

  • 判讀字符串a(chǎn)是否以字符串b開頭或結(jié)尾

  • 調(diào)整字符串中文本的格式

  • 對字符串進行左,右,居中對齊

  • 刪除字符串中不需要的字符

字符串拼接

實際場景:把列表中的數(shù)據(jù)拼接成一個字符串

解決方案:使用 str.join() 方法

>>>?li?=?['cxk',?'cxk',?'kk',?'caibi']
>>>?''.join([str(i)?for?i?in?li])
'cxkcxkkkcaibi'

推薦使用生成器表達式,如果列表很大,可以節(jié)省很多內(nèi)存空間

>>>?''.join(str(i)?for?i?in?li)
'3cxkkkcaibi'

拆分含有多種分隔符的字符串

實際場景:把某個字符串依據(jù)分割符號拆分不同的字段,該字符串包含多種不同的分隔符

s?=?"ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"

1.使用 python 中的 split() 方法,由于 split 一次處理一個分隔符,例如:

>>>?res?=?s.split(';')
>>>?res
['ab',?'fd/ft|fs,f\tdf.fss*dfd',?'fs:uu}fsd']

所以我們需要根據(jù)字符串中的分隔符,依次分割,可以是 map 函數(shù)!

>>>?list(map(lambda?x:?x.split("|"),?res))
[['ab'],?['fd/ft',?'fs,f\tdf.fss*dfd'],?['fs:uu}fsd']]

結(jié)果變成了一個二維列表,而我們想要的結(jié)果是一維列表,怎么辦?

創(chuàng)建一個臨時列表保存結(jié)果。

>>>?t?=?[]
>>>?list(map(lambda?x:?t.extend(x.split("|")),?res))
[None,?None,?None]
>>>?t
['ab',?'fd/ft',?'fs,f\tdf.fss*dfd',?'fs:uu}fsd']

結(jié)果符合我們的預期!接下來繼續(xù)處理剩余的分隔符,重復動作,用 for 循環(huán)搞定!

最終代碼如下:

def?my_split(s,?ds):
????res?=?[s]

????for?d?in?ds:
????????t?=?[]
????????list(map(lambda?x:?t.extend(x.split(d)),?res))
????????res?=?t
????return?res

將字符串和字符串中所有的分隔符傳入,結(jié)果如下:

s?=?"ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"
print(my_split(s,?";/|,.}:*\t"))

運行結(jié)果:['ab', 'fd', 'ft', 'fs', 'f', 'df', 'fss', 'dfd', 'fs', 'uu', 'fsd']

2.使用 re 模塊的中 split() 方法

re() 也給我們提供了 split() 方法,可以一次性分隔字符串!

import?re

s?=?"ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"
print(re.split('[;/|,.}:*\t]',?s))

結(jié)果一致,是不是很簡單粗暴!

判讀字符串a(chǎn)是否以字符串b開頭或結(jié)尾

實際場景:比如某目錄下有一系列文件:

編寫程序給其中所有 .txt 文件和 .py 文件加上用戶可執(zhí)行權(quán)限

解決方案:

使用字符串 str.startswith() 和 str.endswith()

找出以 .txt 和 .py 結(jié)尾的文件,其接受一個元組

>>>?import?os
>>>?os.listdir(".")
['app',?'config',?'requirements.txt',?'run.py',?'__pycache__',?'gunicorn.conf.py',?'chromedriver',?'login_after2.png',?'readme.txt',?'slide.png',?'test.py',?'logs',?'chrome-linux.zip',?'gunicorn.pid',?'asgi.py',?'chrome-linux']

>>>?[name?for?name?in?os.listdir(".")?if?name.endswith((".txt",?".py"))]
['requirements.txt',?'run.py',?'gunicorn.conf.py',?'readme.txt',?'test.py',?'asgi.py']

調(diào)整字符串中文本的格式

實際案列:例如在日志文件中,其中日期格式為'yyyy-mm-dd':

我們想把其中的日期改為美國日期格式'mm/dd/yyyy'.比如 2019-06-12 改成 06/12/2019 格式

解決方案:使用 re 中的 sub() 方法做字符串替換

利用正則表達式中的捕獲組,捕獲每個部分的內(nèi)容,然后在替換在替換的字符串中調(diào)整各個捕獲組的順序!

代碼如下:

import?re

with?open("info.log",?"r",?encoding="utf-8")?as?f:
????file?=?f.read()

print(re.sub('(\d{4})-(\d{2})-(\d{2})',?r'\2/\3/\1',?file))

捕獲組中每組需要用括號括起來,然后默認從左至右分為組1, 組2…

下一個參數(shù)是我們要替換的格式,用 1,2,3 分別表示組1, 組2…

運行結(jié)果如下:

對字符串進行左,右,居中對齊

解決方案:

1.使用字符串中的 str.ljust(), str.rjust(), str.center() 進行左右居中對齊!

以上三種方法的基本用法:

>>>?s?=?'abc'
>>>?s.ljust(20,?'=')
'abc================='
>>>?s.ljust(20)
'abc???????????'

三種方法都可以設置默認填充值

2.使用內(nèi)置的 format() 方法

>>>?format(s,?">20")
'?????????????????abc'
>>>?format(s,?"<20")
'abc?????????????????'
>>>?format(s,?"^20")
'????????abc?????????'

刪除字符串中不需要的字符

實際案例

  • 過濾掉用戶輸入中前后多余的空白字符:“ ? ?nick2008@gmail.com ? ?”

  • 過濾掉某 windows 下編輯文本中的 “\r” :“hello world \r\n”

  • 去掉文本中的 unicode 組合符號(音調(diào)):nǐ hǎo mā

  • 解決方案

    • 使用 str.strip(), str.lstrip(), str.rstrip() 方法去掉字符串兩端字符

    • 使用 str.replace() 或者正則中的 re.sub()

    • 使用字符串中 str.translate() 方法,可以同時刪除多個不同的字符


    ●編號709,輸入編號直達本文

    ●輸入m獲取文章目錄

    推薦↓↓↓

    數(shù)據(jù)庫開發(fā)

    總結(jié)

    以上是生活随笔為你收集整理的jsoncpp去掉多余字符_Python超详细的字符串用法大全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。