一饲宿、字符串剩余:(均為了解)
1沪袭、find,rfind,index,rindex,count
index與find的使用一樣,不同在于find若未找到會(huì)返回-1偷卧,index未找到直接報(bào)錯(cuò)佩厚。盡量用find來(lái)操作姆钉,保護(hù)軟件的穩(wěn)定性。
x = "hello egon egon egon"
res=x.find("egon")
print(res)
res=x.find("egon123") # -1代表沒(méi)有找到
print(res)
----------------------------------
6
-1
res=x.rfind("egon")
print(res)
---------------------------
16
res=x.find("egon",0,3)
print(res)
------------------------------
-1
res = x.index("egon123") # 找不到則報(bào)錯(cuò)
print(res)
----------------------------------------------
res = x.index("egon123") # 找不到則報(bào)錯(cuò)
ValueError: substring not found
2抄瓦、center,ljust,rjust,zfill
x = "yang"
res=x.center(50,'*')
print(res)
-----------------------------------------------------------------
***********************yang***********************
print(x.ljust(50,"*"))
print(x.rjust(50,"*"))
print(x.zfill(50))
print(x.rjust(50,"0"))
----------------------------------------------------------------------------
yang**********************************************
**********************************************yang
0000000000000000000000000000000000000000000000yang
0000000000000000000000000000000000000000000000yang
3潮瓶、expandtabs
print("hello\tworld".expandtabs(1))
------------------------------------
hello world
4、captalize,swapcase,title
print("hello world".capitalize()) # 使第一個(gè)字符大寫
print("aBcDeF".swapcase()) # 大小寫發(fā)轉(zhuǎn)
print("hello world".title()) # 每個(gè)單詞的首字母大寫闺鲸,若一些英文文章的題目有這方面的格式要求
---------------------------------
Hello world
ABcdEFg
Hello World
5筋讨、is其他
name='egon123'
print(name.isalnum()) #字符串是否由字母或數(shù)字組成
print(name.isalpha()) #字符串是否只由字母組成
name="aaainputbbbbb"
print(name.isidentifier()) # 如果字符串是有效標(biāo)識(shí)符,則 isidentifier() 方法返回 True摸恍,否則返回 False悉罕。
name="abc123"
print(name.islower()) # 判斷字符串是否全小寫
print(name.isupper()) # 判斷字符串是否全小寫
name=" "
print(name.isspace()) # 判斷字符串是否全空格
name="My Name Is Egon"
print(name.istitle()) # 判斷字符串是否符合標(biāo)題格式
6、is數(shù)字系列
# 在python3中
num1=b'4' #bytes
num2=u'4' #unicode,python3中無(wú)需加u就是unicode
num3='四' #中文數(shù)字
num4='Ⅳ' #羅馬數(shù)字
#1立镶、 isdigit判斷是否為純數(shù)字字符串(浮點(diǎn)型因?yàn)橛行?shù)點(diǎn)壁袄,不算純數(shù)字)
# bytes、unicode可判斷為True媚媒,中文與羅馬數(shù)字判斷為False
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
-------------------------------------
True
True
False
False
#2嗜逻、isnumeric檢測(cè)變量是否為數(shù)字或數(shù)字字符串
# unicode、中文數(shù)字缭召、羅馬數(shù)字判斷為True栈顷,bytes類型無(wú)此方法
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())
#3逆日、isdecimal 判斷字符串是否只有十進(jìn)制字符串組成這種方法只存在于unicode對(duì)象,注意:定義一個(gè)十進(jìn)制字符串萄凤,只需要在字符串前添加 'u' 前綴即可室抽。
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())
字符串型總結(jié):
1.存一個(gè)值
2.有序
3.不可變類型
二、列表類型靡努,list型
1.用途:按照索引存放多個(gè)值坪圾,可存放任意類型,索引反映位置
2.定義:在[ ]內(nèi)用逗號(hào)分割開(kāi)多個(gè)任意類型的元素
l = [1,2,'hello',[3,4]]
數(shù)據(jù)類型轉(zhuǎn)換:
res1=list("hello")
print(res1)
res2=list({"k1":1,"k2":2,"k3":3})
print(res2)
-------------------------------------
['h', 'e', 'l', 'l', 'o']
['k1', 'k2', 'k3']
3.常用操作與內(nèi)置方法:
3.1 優(yōu)先掌握的操作:
1惑朦、按索引存取值(正向存取+反向存取):即可以取可以改值,不能加值
l1 = [11,22,33,44,55]
print(l1[0])
print(l1[-1])
print(id(l1))
l1[0] = 100
print(id(l1))
l1[4] = 11111
--------------------------
11
55
1133439007104
1133439007104
2兽泄、切片(顧頭不顧尾,步長(zhǎng))
l1 = [11,22,[66,77]]
res=l1[2:4]
print(res)
print(l1)
2.1 淺copy:了解
l2=l1[:]
l2=l1.copy()
print(id(l1[0]),id(l1[1]),id(l1[2]))
print(id(l2[0]),id(l2[1]),id(l2[2]))
l1[0] = "aaa"
l1[1] = "bbb"
l1[2] = "ccc"
l1[2][0] = 8888
print(l2)
from copy import deepcopy
l3=deepcopy(l1)
print(id(l3[0]),id(l3[1]),id(l3[2]))
l1[2][0]=6666
print(l1)
print(l3)
# 示范1:
l1[0]=1000
print(l1)
print(l2)
# 示范2:
l1[-1][0]=666
print(l1)
print(l2)
# 了解:
res=l1[-1:-4:-1]
res=l1[::-1]
print(res)
3漾月、長(zhǎng)度
l1 = [11,22,[66,77]]
print(len(l1))
4病梢、成員運(yùn)算in和not in
l1 = [111,22,[66,77]]
print([66,77] in l1)
print(66 in l1)
print(66 not in l1)
5、追加
方法一栅屏、append飘千,在列表最后追加元素,且括號(hào)內(nèi)會(huì)被視為一個(gè)元素,若加入列表栈雳,則直接追加列表,不會(huì)取出列表中的值再追加
l1=[11,22]
l1.append(33)
l1.append(44)
l1.append([55,66])
--------------------------------
[11, 22, 33, 44, [55, 66]]
方法二缔莲、insert在指定位置加入元素哥纫,將原來(lái)位置的元素?cái)D到后一個(gè)位置
l1 = [11,22,[66,77]]
l1.insert(0,'新元素')
print(l1)
-----------------------------
['新元素', 11, 22, [66, 77]]
l1 = [11,22,[66,77]]
l1.insert(1,'新元素')
print(l1)
----------------------------------
[11, '新元素', 22, [66, 77]]
6、刪除
6.1 萬(wàn)刪除痴奏,沒(méi)有返回值蛀骇,代表的是單純的刪除
l1=[11,22,[33,44]]
del l1[0]
print(l1)
del l1[1]
print(l1)
-----------------------------
[22, [33, 44]]
[22]
6.2 指定元素刪除,不是按照索引刪除,返回值為None(代表無(wú)返回值)读拆,代表的是單純的刪除
l1=[11,22,[33,44]]
res = l1.remove(11) # 指定11這個(gè)元素刪除擅憔,不是按照索引刪除
print(res)
print(l1)
----------------------------------
None
[22, [33, 44]]
6.3 指定索引刪除,有返回值檐晕,代表的是取走操作
l1=[11,22,[33,44]]
res = l1.pop(0)
print(res) # 返回值是自己取走的元素
print(l1)
--------------------------
11
[22, [33, 44]]
7暑诸、循環(huán)
l1=[11,222,[1,2]]
for x in l1:
print(x)
3.2 需要掌握的操作:
1、clear辟灰,全清空
l1=[11,22,333,333,333,]
l1.clear()
print(l1)
2个榕、count,計(jì)算某個(gè)字符出現(xiàn)次數(shù)
l1=[11,22,33,33,33]
print(l1.count(33)) # 計(jì)算33這個(gè)字符出現(xiàn)了幾次
------------------
3芥喇、extend西采,有l(wèi)1,l2兩個(gè)列表继控,將l2列表的元素取出加入l1中
方法一械馆、直接用extend
l1 = [11,22,33]
l2 = [44,55,66]
l1.extend(l2)
print(l1)
------------------------
[11, 22, 33, 44, 55, 66]
方法二胖眷、用for循環(huán),將l2的值取出來(lái)霹崎,再用append追加
l1 = [11,22,33]
l2 = [44,55,66]
for i in l2:
l1.append(i)
print(l1)
------------------------
[11, 22, 33, 44, 55, 66]
4.列表類型index方法使用:list.index(x[, start[, end]])瘦材,顧頭不顧尾
l1=[11,22,33,33,33,44]
res1=l1.index(33,0,2) # 直接報(bào)錯(cuò),在索引0-2(不包括2)中沒(méi)有33元素
res2=l1.index(44)
print(res2)
----------------------------------
5
5.reverse:列表反轉(zhuǎn)
面試題
讓列表反轉(zhuǎn)的兩種方法:
方法一仿畸、使用reverse
l1=[11,22,"aaa",'bbb']
l1.reverse()
方法二食棕、利用列表切片
l1=l1[::-1] # 兩個(gè):不能省略
print(l1)
6.sort 排序,默認(rèn)從小到大错沽,中間加入reverse=True可變成從大到小
字符串與整型之前無(wú)法比較簿晓,可以比較整型與浮點(diǎn)型,字符串與字符串可以比較
字符串與整型無(wú)法比較
# l1 = [11, 22, "aaa", 'bbb']
l1 = [11, 22, 1.2, 3.3]
l1.sort() # 返回值為None
print(l1)
------------------------------------
[1.2, 3.3, 11, 22]
字符串之間比較
l1 = ['aa', '220', 'b', 'nn']
l1.sort()
print(l1)
-------------------------------
['220', 'aa', 'b', 'nn']
4千埃、列表類型總結(jié)
1.存多個(gè)值
2.有序
3.可變類型
三憔儿、元組類型
元組相當(dāng)于一個(gè)不可變的列表,除了不能存,取的操作同列表一樣
1放可、用途: 按照索引存放多個(gè)任意類型的值谒臼,索引反應(yīng)的是位置/順序
2、定義方式:在()內(nèi)用逗號(hào)分隔開(kāi)多個(gè)任意類下的值/元素
強(qiáng)調(diào):當(dāng)元組內(nèi)只有一個(gè)元素時(shí)耀里,必須加逗號(hào)
錯(cuò)誤方式
t=(10)
print(type(t))
----------------
<class 'int'>
正確方式
t=(10,)
print(type(t))
--------------------------
<class 'tuple'>
3蜈缤、常用操作+內(nèi)置的方法
優(yōu)先掌握的操作:
1、按索引取值(正向取+反向取):只能取
t=(10,1.1,"aaa",[11,22])
print(t[0])
----------------------
10
2冯挎、切片(顧頭不顧尾底哥,步長(zhǎng))
t=(11,22,33,44,55)
print(t[0:3]) # 取0,1房官,2三個(gè)索引的值
---------------------
11,22,33
3趾徽、長(zhǎng)度
t=(11,22,33,44,55)
print(len(t))
4、成員運(yùn)算in和not in
t=(11,22,33,44,55)
print(11 in t)
5翰守、循環(huán)
for x in t:
print(x)
4孵奶、元組類型總結(jié):
1.存多個(gè)值
2.有序
3.不可變類型
四、字典類型
1蜡峰、用途:按key:value的形式存放多個(gè)任意類型的value了袁,key反映的是value的屬性
因?yàn)樽值涞膋ey是不能重復(fù)的,所以我們也可以利用這個(gè)特點(diǎn)來(lái)去重
2事示、定義方式:在{}內(nèi)用逗號(hào)分隔開(kāi)多個(gè)key:value早像,其中value可以是任意類型
而key必須是不可變的類型,通常是字符串類型,若key為可變類型肖爵,會(huì)報(bào)錯(cuò)顯示unhashable
d={'k1':111,'k1':222,'k1':3333} # key重復(fù)卢鹦,只保留一個(gè)
print(d)
# 生成字典
d=dict(x=1,y=2,z=3)
print(d)
類型轉(zhuǎn)換
l=[("name","egon"),("age",18),["gender","male"]]
res=dict(l)
print(res)
# 空字典
d={}
print(type(d))
快速構(gòu)造字典,此處可能容易出面試題,尤其注意創(chuàng)建的value是可變類型時(shí)候冀自,向value加值會(huì)使得所有key對(duì)應(yīng)的value都加上值
dic = {}.fromkeys(['name','age','sex'],None)
print(dic)
dic1 = {}.fromkeys('hello',None)
print(dic1)
-------------------------------------------
{'name': None, 'age': None, 'sex': None}
{'h': None, 'e': None, 'l': None, 'o': None} # 在此處我們就可以看到揉稚,字典的key是不能重復(fù)的,hello中有兩個(gè)l熬粗,此處只有一個(gè)l的key搀玖,所以可以利用字典去重
3、常用操作+內(nèi)置的方法
優(yōu)先掌握的操作:
1驻呐、按key存取值:可存可取
若key存在就取值灌诅,如不存在就加值,取值最好用get方法
d={'k1':111}
print(d['k1'])
d['k2']=222
print(d)
2含末、長(zhǎng)度len
d={'k1':111,'k2':222}
print(len(d))
3猜拾、成員運(yùn)算in和not in
d={'k1':111,'k2':222}
print('k1' in d)
print(111 in d)
4、刪除
6.1 del:萬(wàn)能刪除佣盒,沒(méi)有返回值挎袜,代表的是單純的刪除
d={'k1':111,'k2':222}
del d['k1']
print(d)
6.2 popitem:隨機(jī)刪,返回一個(gè)元組
d = {'k1':111,'k2':222,'k3':333}
res = d.popitem()
print(d,res)
-----------------------
{'k1': 111, 'k2': 222} ('k3', 333)
6.3 pop:指定key刪除,有返回值肥惭,代表的是取走操作
d={'k1':111,'k2':222}
res=d.pop('k1')
print(d)
print(res)
-----------------------------
{'k2': 222}
111
5盯仪、鍵keys(),值values()蜜葱,鍵值對(duì)items() 與for循環(huán)
d = {'k1':111,'k2':222,'k3':333}
for key in d.keys():
print(key,end=' ')
print()
for value in d.values():
print(value,end=' ')
print()
for k,v in d.items():
print(k,v)
---------------------------------
k1 k2 k3
111 222 333
k1 111
k2 222
k3 333