嘉定網(wǎng)站建設(shè)哪家好網(wǎng)站排名怎么搜索靠前
python字符串相關(guān)
- 一、reverse() 函數(shù) 只能反轉(zhuǎn) 列表
- 二、reversed() 反轉(zhuǎn)元組字符串等等 返回迭代器
- 三、join和reversed反轉(zhuǎn)字符串
- 四、join串聯(lián)字符串(join連接對象僅限字符串、儲存字符串的元組、列表、字典)數(shù)字對象可通過str()轉(zhuǎn)化為字符串?
- 對象為字符串
- 對象為元組
- 對象為列表
- 對象為字典?
- 數(shù)字對象可通過str()轉(zhuǎn)化為字符串?
- 五、set()獲得不重復(fù)元素集合(類似unique)
- 對于字典,set和reverse操作針對的都是key
- r字符串前綴
- r""正則表達(dá)式中的應(yīng)用
- 文件路徑處理
- re 模塊主要方法(re 模塊幾乎包含了正則表達(dá)式的所有功能)
一、reverse() 函數(shù) 只能反轉(zhuǎn) 列表
reverse() 函數(shù)用于反向列表中元素。
reverse()方法語法:
list.reverse()
#!/usr/bin/pythonaList = [123, 'xyz', 'zara', 'abc', 'xyz']aList.reverse()
print "List : ", aList
二、reversed() 反轉(zhuǎn)元組字符串等等 返回迭代器
seq — 需要轉(zhuǎn)換的序列,如元組、列表、字符串、range
seqTuple = ('H', 'e', 'l', 'l', 'o') # 元組
print(list(reversed(seqTuple)))
seqList = [7, 8, 4, 5, 6] # 列表
print(list(reversed(seqList)))
seqString = 'HelloWorld' # 字符串
print(list(reversed(seqString)))
seqRange = range(1, 8) # range
print(list(reversed(seqRange)))
['o', 'l', 'l', 'e', 'H']
[6, 5, 4, 8, 7]
['d', 'l', 'r', 'o', 'W', 'o', 'l', 'l', 'e', 'H']
[7, 6, 5, 4, 3, 2, 1]
三、join和reversed反轉(zhuǎn)字符串
可惜不能反轉(zhuǎn)字符串
st="python"
#?法1
''.join(reversed(st))
# st.reverse() #'str' object has no attribute 'reverse'
四、join串聯(lián)字符串(join連接對象僅限字符串、儲存字符串的元組、列表、字典)數(shù)字對象可通過str()轉(zhuǎn)化為字符串?
語法:'sep'.join(sep_object)
參數(shù)說明
sep:分割符,可為“,、;”等。
sep_object:分割對象,可為字符串、以及儲存字符串的元組、列表、字典。
用法:連接任意數(shù)量的字符串(包括要連接的元素字符串、元組、列表、字典),用新的目標(biāo)分隔符連接,返回新的字符串。
對象為字符串
';'.join('abc') #輸出結(jié)果為:'a;b;c' string1 = 'good idea'#定義字符串
' '.join(string1) 輸出結(jié)果:'g o o d i d e a' #說明:由于字符串里沒指明按字符串之間是怎么連接的,默認(rèn)每個字符之間插入目標(biāo)字符
對象為元組
tuple1 = ('a', 'b', 'c') # 定義元組tuple1
'、'.join(tuple1)
# print('、'.join(tuple1))
# a、b、c
tuple2 = ('hello', 'peace', 'world') # 定義元組tuple2
' '.join(tuple2)
# print(' '.join(tuple2))
# hello peace world
對象為列表
b = ['a', 'b', 'c'] # 定義列表
print('、'.join(b))
# a、b、c
list1 = ['hello', 'peace', 'world'] # 定義列表
print(' '.join(list1))
# hello peace world
對象為字典?
c={'hello':1,'world':2}
print(';'.join(c))
# hello;world
d = {'hello':'hi','world':'2'}
print(' '.join(d))
# hello world
數(shù)字對象可通過str()轉(zhuǎn)化為字符串?
報錯?
a = (1,2,3) #定義元組a
';'.join(a)
#報錯:TypeError: sequence item 0: expected str instance, int found
分割對象儲存的對象要為字符串,否則會報錯
數(shù)字對象可通過str()轉(zhuǎn)化為字符串
a = (1,2,3) #定義元組a
';'.join(a)b = (186234,1385475,1235462)
';'.join(str(i) for i in b)#調(diào)用set函數(shù)去重處理
e = (1,2,3,2) #定義元組a
'、'.join(str(i) for i in set(e))
五、set()獲得不重復(fù)元素集合(類似unique)
語法:set(<iterable>)
參數(shù)說明:iterable:是指可遍歷的對象。可為string字符串、list列表、tuple元組對象,可為空值,返回結(jié)果為新的空集對象即“set()”。但 不可以直接傳入number數(shù)字對象(float浮點(diǎn)數(shù)、int整數(shù))否則會報錯。
(2)用法:獲取獨(dú)特元素的無序集合。
即獲取得到的集合里的元素是無先后順序、不重復(fù)。
set('1') #輸出結(jié)果為{'1'}
set('a,b,c,b,c,d') #輸出結(jié)果為:{',', 'a', 'b', 'c', 'd'}
set('andjn') #輸出結(jié)果為:{'a', 'd', 'j', 'n'}
set((1,2,1)) #輸出結(jié)果為:{1, 2}
set(('a','b','f','d','g','f')) #輸出結(jié)果為:{'d', 'a', 'f', 'g', 'b'}
set([1,2,1]) #輸出結(jié)果為:{1, 2}
set(['a','b','f','d','g','f']) #輸出結(jié)果為:{'a', 'b', 'd', 'f', 'g'}
對于字典,set和reverse操作針對的都是key
tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Manni'}
print(set(tinydict))
原文鏈接:代碼摘自該博主的python專欄,只搬來學(xué)習(xí),侵刪
r字符串前綴
在Python中,r字符串前綴是一種特殊的字符串前綴,用于表示原始字符串。當(dāng)一個字符串以r前綴開始時,它將被視為原始字符串,其中的轉(zhuǎn)義字符將被忽略。
r字符串前綴的作用是消除轉(zhuǎn)義字符的特殊含義,使字符串中的每個字符都按照字面意義進(jìn)行解釋。這在處理包含大量反斜杠、制表符、換行符等特殊字符的字符串時非常有用。
使用原始字符串可以避免手動轉(zhuǎn)義特殊字符,使字符串的處理更加簡潔和直觀。
在Python中,字符串中的轉(zhuǎn)義字符以反斜杠(\)開頭,用于表示一些特殊字符或字符序列。例如,\n表示換行符,\t表示制表符。
# 使用r字符串前綴
path = r'C:\Users\username\Documents'
print(path)
在上面的示例中,r字符串前綴將反斜杠字符視為普通字符,而不是轉(zhuǎn)義字符。這樣可以避免由于轉(zhuǎn)義字符造成的錯誤或混淆。
形如r"c:\news",由r開頭引起的字符串就是聲明了后面引號里的東西是原始字符串,在里面放任何字符都表示該字符的原始含義。有時候匹配正則表達(dá)式中,有時候會有斜線 \ 沒有 r ,就要寫2個 \ \ 有 r ,只要寫一個 \ 這種方法在做網(wǎng)站設(shè)置和網(wǎng)站目錄結(jié)構(gòu)的時候非常有用,使用了原始字符串就不需要轉(zhuǎn)義了。例如:file_object=open('C:\\Users\\ooooooobh\\Desktop\\ooooooobh.txt')file_object=open(r'C:\Users\ooooooobh\Desktop\ooooooobh.txt')
r""正則表達(dá)式中的應(yīng)用
正則表達(dá)式中的特殊字符
在正則表達(dá)式中,某些字符具有特殊含義,例如點(diǎn)號(.)、星號(*)、加號(+)等。如果要匹配這些特殊字符本身,而不是它們的特殊含義,可以使用r字符串前綴。
import re# 使用r字符串前綴處理正則表達(dá)式
pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
email = 'example@example.com'if re.match(pattern, email):print('Valid email address')
else:print('Invalid email address')
在上面的示例中,r字符串前綴將正則表達(dá)式中的特殊字符視為普通字符,而不是具有特殊含義的元字符。這樣可以確保正則表達(dá)式的準(zhǔn)確性和可讀性。
文件路徑處理
4.1 文件路徑中的轉(zhuǎn)義字符
在處理文件路徑時,可能會遇到包含反斜杠等轉(zhuǎn)義字符的情況。使用r字符串前綴可以確保這些轉(zhuǎn)義字符被正確解釋,而不是被視為特殊字符。
4.2 使用r字符串前綴處理文件路徑
下面是一個示例,展示了如何使用r字符串前綴來處理文件路徑中的轉(zhuǎn)義字符:
# 使用r字符串前綴處理文件路徑
path = r'C:\Users\username\Documents\example.txt'with open(path, 'r') as file:content = file.read()print(content)
在上面的示例中,r字符串前綴確保文件路徑中的反斜杠被正確解釋為普通字符,而不是作為轉(zhuǎn)義字符。這樣可以避免由于轉(zhuǎn)義字符造成的錯誤或混淆。
原文鏈接
re 模塊主要方法(re 模塊幾乎包含了正則表達(dá)式的所有功能)
import reprint(re.search(r'abc', 'abcef'))
# <_sre.SRE_Match object; span=(0, 3), match='abc'>
print(re.search(r'abc', 'aBcef'))
# None
import reprint(re.match(r'abc', 'abcef'))
# <_sre.SRE_Match object; span=(0, 3), match='abc'>
abc需要完美匹配abc
import reprint(re.fullmatch(r'abc', 'abcef'))
# None
print(re.fullmatch(r'abc', 'abc'))
# <_sre.SRE_Match object; span=(0, 3), match='abc'>