Python學習筆記(隨筆)

江先生發表於2018-01-16
人生苦短,我用Python

字串處理

1、去除字串兩邊空格:s.strip()

2、去除字串左邊空格:s.lstrip()

3、去除字串右邊空格:s.rstrip()

4、替換字串中的字元:s.replace('c1','c2')(c1替換成c2)

5、通過指定分隔符對字串進行切片,如果引數num有指定值,則僅分割num個字串

#string:字串(即不能修改的字元list)
str_main="Hello My Girl"
#子字串的提取
child_str=str_main[:6]
print(child_str) # will return Hello

#字串包含判斷操作符:in,not in
is_bool='He' in str_main
print(is_bool) # will return True
is_notBool='He' not in str_main
print(is_notBool) #will return False

#字串操作方法
#可指範圍查詢字串,返回索引值,否則返回-1
a=str_main.find('Gi',3,11)
b=str_main.rfind('Gi',3,11)
print(a) #will return 9
print(b) #will return 9

#s.index(),同find,找不到時產生ValueError異常
c=str_main.index('M',2,11)
print(c)
#返回找到字串的個數
d=str_main.count('l',2,11)
print(d)

#e=str_main.lowercase()
#print(e)

#首字母大寫
f=str_main.capitalize()
print(f)#will return Hello my girl

#轉小寫
g=str_main.lower()
print(g)# will return hello my girl

#轉大寫
h=str_main.upper()
print(h)# will return HELLO MY GIRL

#大小寫互換
i=str_main.swapcase()
print(i)# will return hELLO mY gIRL

#將string轉list,以空格切分
j=str.split(str_main,' ')
print(j) #will return ['Hello', 'My', 'Girl']

#處理字串的內建函式
k=len(str_main)
print(k)#will return 13

#判斷字串是否以某字串開頭
l=str_main.startswith('H')
print(l) #will return True

#判斷當前字串是否是數字
str_num='3'
m=str_num.isnumeric()
print(m) #will return True

#判斷字串是否以某字串結尾
n=str_main.endswith('l')
print(n) #will return True

#返回字串中tab符號('\t')轉為空格後的字串,預設是8個字元空格
str_tab="\tThis is a include tab string"
o=str_tab.expandtabs(0)
print(str_tab) # will return:	This is a include tab string
print(o) #will return:This is a include tab string

#檢測字串是否只由空格組成
str_space='     '
p=str_space.isspace()
print(p) #will return:True

#該方法返回一個原字串,並用空格或設定的字元填充至長度width的新字串
str_center='江先生'
q=str_center.center(20,'*')
print(q)# will return:********江先生*********

#該方法檢測字串是否由字母和數字組成
str_isAlnum='2w3e'
r=str_isAlnum.isalnum()
print(r) #will return:True

#該方法檢測字串是否只由字母組成。
str_isAlnum='2w3e'
str_isalpha='wwww'
s=str_isAlnum.isalpha()
t=str_isalpha.isalpha()
print(s)# will return:False
print(t)# will return:True

#該方法檢測該字串是否可以被列印
#True 如果字串為空或者字串中的所有字元都是可列印的
#False 如果該字串至少包含一個不可列印的()字元
str.isprintable()

#返回"標題化"的字串,就是說所有單詞都是以大寫開始,其餘字母均為小寫
str_title='my best friend'
u=str_main.title()複製程式碼

字典操作

#建立字典
dic={1:'one',2:'two',3:'three',4:'four'}

#新增元素
dic['First']='MyFirst'

#修改元素
dic['First']='MyTwo'

#刪除元素
del dic['MyFirst']

#返回一個包含字典所有key的列表
keys=dic.keys()

#返回一個包含字典所有value的列表
values=dic.values()

#刪除字典中的所有選項或元素
dic.clear()

#返回一個字典的副本,如果原字典改變,副本不會改變
dic1=dic.copy()

#建立並返回一個新字典,
dicc={}
dicNew=dicc.fromkeys([1,2,3],'myName')

#返回字典中key的值,如果該key不存在,則返回default的值,default的預設值是None
temp=dic.get(5,"不存在")

#刪除並返回key對應value的值,如果key不存在,返回設定的default值,如果沒有設定deauflt,返回keyError
dic.pop(2,'five')

#返回key對應的value,如果key不存在,返回default值,等同於dic.get(key,default)
dic.setdefault(4,default=None)

#adic和bdic同為字典,使用bdic更新adic,兩個字典adic裡面的鍵值對保持不變,將bdic存在但adic裡面沒有的鍵值對新增到adic裡面
#如果具有相同的key,但value不同,則adic中的value變為bdic中的value
adic={}
bdic={'q':'w'}
adic.update(bdic)複製程式碼

列表操作:

定義:List:列表(即動態陣列,C++標準庫的vector,但可含不同型別的元素於一個list中)

list=['a',1,'b','c']#元素可為任何型別

下標:按下標讀寫,就當陣列處理

以0開始,有負下標的使用

0第一個元素,-1最後一個元素

-len第一個元素,len-1最後一個元素

#建立列表
list=['a',1,('a','b')]

#得到列表中的某一個值
value1=list[2] #value=('a', 'b')
value2=list[-1] #value=('a', 'b')

#刪除列表中的某一個值
del list[1]

#在列表中插入一個值
list[3]=['Add Value']

#得到列表的長度
list_length=len(list)

#列表遍歷
for element in list:
    print(element)
print(value2)

#Python列表高階操作/技巧
#產生一個數值遞增列表,will return a list[0,1,2,3,...,29]
num_list=range(30)
for item in num_list:
    print(item)

#用某個固定值初始化列表
initial_value=0
list_length=5
list=[initial_value for i in range(10)]
list_new=[initial_value]*list_length
print(list)#will return a list[0,0,0,0,0,0,0,0,0,0]
print(list_new)#will return a list[0,0,0,0,0]

#list方法
list=['a',1,('a','b')]

#在list末尾追加元素
list.append('New Add')
print(list) #will return ['a', 1, ('a', 'b'), 'New Add']

#在指定位置插入資料,若當前位置有值,則當前位置往後移
list.insert(3,'Insert Value')
print(list) #will return ['a', 1, ('a', 'b'), 'New Add', 'Insert Value']

#返回最後一個元素,並從list中刪除之
value=list.pop()
print(list)#will return ['a', 1, ('a', 'b'), 'Insert Value']
print(value) # will return New Add

#刪除第一次出現的該元素
list.remove('a')
print(list)# will return [1, ('a', 'b'), 'Insert Value']

#該元素在列表中出現的個數
count=list.count('Insert Value')
print(count)# will return 1

#返回該元素的位置,無則拋異常
index=list.index('Insert Value')
print(index) #will return 2

#追加newList,即合併newList到list上
newList=['e','r',3]
list.extend(newList)
print(list) #will return [1, ('a', 'b'), 'Insert Value', 'e', 'r', 3]

#取list的元素數量
length=len(list)
print(length)#will return 6

#對list 排序
list.sort()#正序
list.reverse() #倒序

#List操作符 : + , 關鍵字del
listNew=list[1:]
print(listNew) #will return [('a', 'b'), 'Insert Value', 'e', 'r', 3]

list_add=[1,2]+[5,6]
print(list_add) #will return [1, 2, 5, 6]

list_mul=[2]*4
print(list_mul) #will return [2, 2, 2, 2]

del list_mul[1]
print(list_mul) #will return [2, 2, 2]

#刪除指定下標範圍的元素
del list_mul[1:3]複製程式碼

元組:tuple

元組(tuple):tuple和list非常類似,但是tuple一旦初始化就不能修改。

tupleDemo=('one','two','three',1,['a','b'])
print(tupleDemo[0])
print(tupleDemo[-1])

#tuple陷阱,當你定義一個tuple時,在定義的時候,tuple元素就必須被確定下來,
#如果要定義個空的tuple,可以寫成();
tuple_new=()

#如果要定義一個只有1個元素的tuple,
tuple_one=(1)
print(tuple_one)#返回的是1,而不是(1)這個元組,
#所以在定義一個元素的tuple時,也會加一個逗號,以免造成誤解

#任何事情都不上絕對的,tuple是不可變的,但是元組可以放其他型別的元素
#如果想要可變,可以在其中定義一個list,從而達到元組可變的目的
tupleDemo[4][1]='c'
print(tupleDemo) # will return:('one', 'two', 'three', 1, ['a', 'c'])複製程式碼


相關文章