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,開始...