Python必須掌握的8個高階字串技巧

2021-10-07 17:43:36 字數 3066 閱讀 8267

python字串看起來很簡單,但是它們非常靈活,而且在**裡無處不在!

初看起來字串似乎不像資料科學領域這樣的高階,但是平常工作中經常需要大量的非結構化資料,深入研究字串將會非常有啟發!

當使用非結構化資料時,在較長的字串中標識特定的單詞或其他子字串可能非常有幫助。最簡單的方法是使用in運算子。

假設你正在使用列表等集合資料結構,並且需求是要確定字串中是否存在某個子字串。

在下面的示例中,你有乙個的列表,並且想知道字串「 west」是否在每個列表項中包含

sample_list = ['north west', 'west', 'north east', 'east', 'south', 'north']

is_west = ['yes' if 'west' in location else 'no' for location in sample_list]

#注意,這裡使用了生成式語法

print(is_west)

# 輸出:

# ['yes', 'yes', 'no', 'no', 'no', 'no']

f字串是在python 3.6中引入的,它們沒有得到足夠的認可。

我說它們很神奇是有原因的。他們:

但是他們是什麼?f字串(或格式化的字串文字)允許您將變數(或任何表示式)放入字串中。然後在執行時執行表示式。

要編寫f字串,請在字串前面加上』f』。

讓我們看乙個例子:

name = 'nik'

birthyear = 1987

print(f'my name is and i am years old.')

#輸出:

my name is nik and i am 33 years old.

可以通過切片將字串反轉(與其他可迭代物件一樣)。要反轉任何可迭代的物件,都可以直接使用[::-1]。

-1用作step(步長)引數,python通過該引數從最後乙個值開始並以-1遞增:

string = 'pythonisfun'

print(string[::-1])

# returns: nufsinohtyp

要替換子字串,可以使用replace方法。它適用於任何型別的字串,包括乙個簡單的空格(因為python沒有內建的刪除空格的方法)。

讓我們看乙個例子:

sample = 'python is kind of fun.'

print(sample.replace('kind of', 'super'))

# 輸出:

# python is super fun.

python字串是可迭代的物件(就像列表,集合等)。

如果要返回字串的每個字母,可以編寫:

sample = 'python'

for letter in sample:

print(letter)

# 輸出:

# p# y

# t# h

# o# n

python字串有時有點古怪。你從檔案中獲取的字串,可能有小寫、大寫及首字母大寫等內容,而你可能需要對它們進行格式化,以供日後使用。

讓我們看看實際的例子:

sample = 'this is a string'

print(sample.upper())

print(sample.lower())

print(sample.title())

# 輸出:

# this is a string

# this is a string

# this is a string

結合到目前為止所學的知識,你可以使用[::-1]切片輕鬆檢查字串是否是回文。

如果單詞或片語的正反拼寫完全相同,則為回文

同樣,你可以使用排序函式返回字串的已排序版本。如果兩個排序的字串相同,則它們是字謎

string = 'taco cat'

def palindrome(string_to_check):

if string.lower().replace(' ', '') == string.lower().replace(' ', '')[::-1]:

print("你找到了回文!")

else:

print("你的字串不是回文")

palindrome(string)

# 輸出:

# 你找到了回文!

字謎是通過重新排列另乙個單詞而形成的單詞或短語。簡而言之,如果兩個單詞具有相同的字母而只是字母排列順序不一樣,則它們是字謎。

如果要檢視兩個詞是否為字謎,可以對兩個詞進行排序,看看它們是否相同:

def anagram(word1, word2):

if sorted(word1) == sorted(word2):

print(f" 和 是字迷!")

else:

print(f" 和 不是字迷!")

anagram('silent', 'listen')

# 返回:

# silent 和listen 是字迷!

假設你得到乙個包含多種資料的字串,需要拆分此字串以解析出單個資料片段。

在下面的示例中,字串包含區域,銷售代表的姓氏以及訂單號。

你可以使用.split()分割這些值:

order_text = 'north-doe-001'

print(order_text.split('-'))

# 輸出:

# ['north', 'doe', '001']

在python中字串是最為頻繁處理的資料型別之一,掌握它的高階技巧將會事功倍。

本文整理源自

thanks nik

必須掌握8個基本DOS命令

必須掌握8個基本dos命令 一,ping 它是用來檢查網路是否通暢或者網路連線速度的命令。作為乙個生活在網路上的管理員或者黑客來說,ping命令是第乙個必須掌握的dos命令,它所利用的原理是這樣的 網路上的機器都有唯一確定的ip位址,我們給目標ip位址傳送乙個資料報,對方就要返回乙個同樣大小的資料報...

黑客入門必須掌握8個DOS命令

一,ping 它是用來檢查網路是否通暢或者網路連線速度的命令。作為乙個生活在網路上的管理員或者黑客來說,ping命令是第乙個必須掌握的dos命令,它所利用的原理是這樣的 網路上的機器都有唯一確定的ip位址,我們給目標ip位址傳送乙個資料報,對方就要返回乙個同樣大小的資料報,根據返回的資料報我們可以確...

必須掌握的排序

大神總結的很好。學而時習之,善於總結。非常恨那些把演算法排序之類的搞得異常麻煩的人,盡可能簡單一點,簡單了,容易理解了,才好記,上了戰場,才用得著.人家的不好用,只好自己總結,重寫原理與過程.口訣 冒泡 n 1,n i 1,比的是j與j 1 插入 n 1,i 1,比的是i 1與j 選擇 n,n,開始...