1. 數(shù)據(jù)類型
1.1 數(shù)字int
1.1.1 int類型的使用方法
1)bit_length()方法:當(dāng)十進(jìn)制用二進(jìn)制表示時(shí)侮攀,最少使用的位數(shù)
范例
v = 11
data = v.bit_length()
print(data)
執(zhí)行結(jié)果
4
1.2 字符串str
1.2.1 字符串的索引
索引即下標(biāo)芽唇,就是字符串組成的元素從第一個(gè)開始,初始索引為0以此類推毅桃。
范例
s = 'ABCDLSESRF'
s1 = s[0]
print(s1)
s2 = s[2]
print(s2)
s3 = s[-1]
print(s3)
s4 = s[-2]
print(s4)
執(zhí)行結(jié)果:
A
C
F
R
1.2.2 字符串的切片
切片就是通過(guò)索引(索引:索引:步長(zhǎng))截取字符串的一段爱榔,形成新的字符串(原則就是顧頭不顧尾)路幸。
范例
s = 'ABCDLSESRF'
s5 = s[0:4]
print(s5)
s6 = s[0:-1] # -1 是列表中最后一個(gè)元素的索引,但是要滿足顧頭不顧尾的原則模孩,所以取不到F元素
print(s6)
s7 = s[:] # 默認(rèn)到最后
s8 = s[0:] # 默認(rèn)到最后
print(s7,s8)
s = 'ABCDLSESRF' # s[首:尾:步長(zhǎng)]
s10 = s[0:5:2] # 正向步長(zhǎng)
print(s10)
s11 = s[4:0:-1] # 反向步長(zhǎng)
print(s11)
s12 = s[3::-1] # 反向步長(zhǎng)
print(s12)
s13 = s[3::-2] # 反向步長(zhǎng)
print(s13)
s14 = s[-1::-1] # 反向步長(zhǎng)
print(s14)
s15 = s[::-1] # 反向步長(zhǎng)
print(s15)
執(zhí)行結(jié)果:
ABCD
ABCDLSESR
ABCDLSESRF ABCDLSESRF
ACL
LDCB
DCBA
DB
FRSESLDCBA
FRSESLDCBA
1.2.3 字符串的常用操作方法
- capitalize()方法
capitalize() 將字符串的第一個(gè)字母變成大寫,其他字母變小寫尖阔。
范例
s = "alexWUsir"
s1 = s.capitalize()
執(zhí)行結(jié)果
Alexwusir
- lower()方法與upper()方法
lower() 方法轉(zhuǎn)換字符串中所有大寫字符為小寫。
upper() 方法將字符串中的小寫字母轉(zhuǎn)為大寫字母榨咐。
范例
s = "alexWUsir"
s1 = s.upper()
s2 = s.lower()
print(s1)
print(s2)
執(zhí)行結(jié)果
ALEXWUSIR
alexwusir
應(yīng)用范例
s_str = "acEQ1"
you_input = input("請(qǐng)輸入驗(yàn)證碼介却,不區(qū)分大小寫:")
if s_str.upper() == you_input.upper():
print("輸入成功")
else:
print("請(qǐng)重新輸入")
執(zhí)行結(jié)果
請(qǐng)輸入驗(yàn)證碼,不區(qū)分大小寫:aceq1
輸入成功
- swapcase() 方法
swapcase() 方法用于對(duì)字符串的大小寫字母進(jìn)行轉(zhuǎn)換
范例
s = "alexWUsir"
s3 = s.swapcase()
print(s3)
執(zhí)行結(jié)果
ALEXwuSIR
- title()方法
title() 方法返回"標(biāo)題化"的字符串,就是說(shuō)所有單詞都是以大寫開始块茁,其余字母均為小寫(見 istitle())齿坷。
簡(jiǎn)易說(shuō)明:每個(gè)隔開(特殊字符或者數(shù)字)的單詞首字母大寫
范例
s1 = "alex egon wusir"
s2 = "alex*egon-wusir"
s3 = s1.title()
s4 = s2.title()
print(s3)
print(s4)
s5 = "fade,crazy*w4rri0r_songsong node_3"
s6 = s5.title()
print(s6)
執(zhí)行結(jié)果
Alex Egon Wusir
Alex*Egon-Wusir
Fade,Crazy*W4Rri0R_Songsong Node_3
- center()方法
center() 返回一個(gè)原字符串居中,并使用空格填充至長(zhǎng)度 width 的新字符串。默認(rèn)填充字符為空格龟劲。
簡(jiǎn)易說(shuō)明:居中胃夏,空白填充
范例
s = "alexWUsir"
s1 = s.center(20)
s2 = s.center(20,'~')
print(s1)
print(s2)
執(zhí)行結(jié)果
alexWUsir
~~~~~alexWUsir~~~~~~
- expandtabs()方法
expandtabs() 方法把字符串中的 tab 符號(hào)('\t')轉(zhuǎn)為空格,tab 符號(hào)('\t')默認(rèn)的空格數(shù)是 8昌跌。
范例
s = "alex\tsir"
s1 = s.expandtabs()
print(s1)
s2 = "a\tb"
print(s2)
print(s2.expandtabs())
print(s2.expandtabs(20))
執(zhí)行結(jié)果
alex sir
a b
a b
a b
- startswith()方法 與 endswith()方法
startswith() 方法用于檢查字符串是否是以指定子字符串開頭仰禀,如果是則返回 True,否則返回 False蚕愤。如果參數(shù) beg 和 end 指定值答恶,則在指定范圍內(nèi)檢查饺蚊。
endswith() 方法用于判斷字符串是否以指定后綴結(jié)尾,如果以指定后綴結(jié)尾返回True悬嗓,否則返回False污呼。可選參數(shù)"start"與"end"為檢索字符串的開始與結(jié)束位置包竹。
判斷以什么開頭與結(jié)尾
范例
s = 'alexWUsir'
s1 =s.startswith('alex')
s2 = s.startswith('e',2,5) # 以2開頭的索引位置燕酷,以5結(jié)尾的索引位置
print(s1)
print(s2)
s3 = "Hello World!"
print(s3.endswith("!"))
print(s3.endswith("#"))
執(zhí)行結(jié)果
True
True
True
False
應(yīng)用范例
s = 'alexWUsir'
if s7:
pass
elif s.startswith('bl'):
pass
- find()方法
find() 方法檢測(cè)字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結(jié)束) 范圍周瞎,則檢查是否包含在指定范圍內(nèi)苗缩,如果包含子字符串返回開始的索引值,否則返回-1声诸。
簡(jiǎn)易說(shuō)明:通過(guò)元素找索引酱讶,找不到返回-1
范例
s = "alexWUsir"
s1 = s.find("W")
s2 = s.find("A")
print(s1)
print(s2)
s3 = "Hello World!"
print(s3.find("o"))
print(s3.find("ok"))
print(s3.find("o",0,3))
print(s3.find("o",0,5))
執(zhí)行結(jié)果
4
-1
4
-1
-1
4
- index()方法
index() 方法檢測(cè)字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結(jié)束) 范圍彼乌,則檢查是否包含在指定范圍內(nèi)泻肯,該方法與 python find()方法一樣,只不過(guò)如果str不在 string中會(huì)報(bào)一個(gè)異常慰照。
簡(jiǎn)易說(shuō)明:通過(guò)元素找索引灶挟,找不到報(bào)錯(cuò)
范例
s = "alexWUsir"
s1 = s.index("W")
print(s1)
s = "Hello World!"
print(s.index("o"))
print(s.index("o",5,8))
執(zhí)行結(jié)果
4
4
7
- strip()方法 與 lstrip()方法 與 rstrip()方法
strip() 方法用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列。
注意:該方法只能刪除開頭或是結(jié)尾的字符焚挠,不能刪除中間部分的字符膏萧。
lstrip() 方法用于截掉字符串左邊的空格或指定字符。
rstrip() 刪除 string 字符串末尾的指定字符(默認(rèn)為空格)
范例
s = " alexWUsir "
s1 = s.strip()
s2 = s.lstrip()
s3 = s.rstrip()
print(s1)
print(s2)
print(s3)
s4 = "alexWUsir%"
s5 = s4.strip("%")
print(s5)
s6 = " *a%lexWUsi* r%"
s7 = s6.strip(" %*")
print(s7)
執(zhí)行結(jié)果
alexWUsir
alexWUsir '
' alexWUsir
alexWUsir
a%lexWUsi* r
應(yīng)用范例
username = input('請(qǐng)輸入名字:').strip()
if username =='春哥':
print('恭喜春哥發(fā)財(cái)')
執(zhí)行結(jié)果
請(qǐng)輸入名字: 春哥
恭喜春哥發(fā)財(cái)
- split()方法 與 rsplit()
split() 通過(guò)指定分隔符對(duì)字符串進(jìn)行切片蝌衔,如果參數(shù) num 有指定值榛泛,則僅分隔 num 個(gè)子字符串
rsplit() 方法通過(guò)指定分隔符對(duì)字符串進(jìn)行分割并返回一個(gè)列表,默認(rèn)分隔符為所有空字符噩斟,包括空格曹锨、換行(\n)、制表符(\t)等剃允。類似于 split() 方法沛简,只不過(guò)是從字符串最后面開始分割。
簡(jiǎn)易說(shuō)明:拆分str ----> list
s = "hello world!"
print(s.split())
print(s.split("o"))
print(s.split("l"))
print(s.rsplit("o"))
print(s.rsplit("o",1))
s = "alex wusir taibai"
l1 = s.split()
print(l1)
s2 = ';alex;wusir;taibai'
l2 = s.split(';')
print(l2)
l3 = s.split('a')
print(l3)
執(zhí)行結(jié)果
['hello', 'world!']
['hell', ' w', 'rld!']
['he', '', 'o wor', 'd!']
['hell', ' w', 'rld!']
['hello w', 'rld!']
['alex', 'wusir', 'taibai']
['alex wusir taibai']
['', 'lex wusir t', 'ib', 'i']
12)format()方法
范例1
s3 = "My name is {0}, I am {1} years old."
print(s3.format("rock",23))
s3 = "My name is {0}, I am {0} years old."
print(s3.format("rock",23))
s3 = "My name is {name}, I am {age} years old."
print(s3.format(name="alex",age=22))
執(zhí)行結(jié)果
My name is rock, I am 23 years old.
My name is rock, I am rock years old.
My name is alex, I am 22 years old.
范例2
s = '我叫{}斥废,今年{}椒楣,愛好{},再說(shuō)一下我叫{}'.format('太白',36,'girl','太白')
print(s)
name = input('請(qǐng)輸入名字:')
s = '我叫{0}牡肉,今年{1}捧灰,愛好{2},再說(shuō)一下我叫{0}'.format(name,36,'girl')
print(s)
name = input('請(qǐng)輸入名字:')
s = '我叫{name}统锤,今年{age}毛俏,愛好{hobby}炭庙,再說(shuō)一下我叫{name}'.format(age=18,name=name,hobby='girl')
print(s)
執(zhí)行結(jié)果
我叫太白,今年36煌寇,愛好girl焕蹄,再說(shuō)一下我叫太白
請(qǐng)輸入名字:ada
我叫ada,今年36阀溶,愛好girl腻脏,再說(shuō)一下我叫ada
請(qǐng)輸入名字:alex
我叫alex,今年18银锻,愛好girl迹卢,再說(shuō)一下我叫alex
- replace()方法
replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個(gè)參數(shù)max徒仓,則替換不超過(guò) max 次。
范例1
s = "hello world!"
print(s.replace("h","H"))
print(s.replace("o","-"))
print(s.replace("o","-",1))
執(zhí)行結(jié)果
Hello world!
hell- w-rld!
hell- world!
范例2
s = '來(lái)看待街坊鄰居復(fù)合大師街坊法好的撒見客戶'
s11 = s.replace('街坊','老王',1)
print(s11)
執(zhí)行結(jié)果
來(lái)看待老王鄰居復(fù)合大師街坊法好的撒見客戶
- isalnum()方法
isalnum() 方法檢測(cè)字符串是否由字母和數(shù)字組成誊垢。
范例
print("22".isalnum())
print("22d".isalnum())
print("22d!".isalnum())
執(zhí)行結(jié)果
True
True
False
- isalpha()方法
isalpha() 方法檢測(cè)字符串是否只由字母組成掉弛。
范例
print("22".isalpha())
print("dd".isalpha())
執(zhí)行結(jié)果
False
True
- isdigit()方法
isdigit() 方法檢測(cè)字符串是否只由數(shù)字組成。
范例
print("33.33".isdigit())
print("3333".isdigit())
執(zhí)行結(jié)果
False
True
- isspace() 方法
isspace() 方法檢測(cè)字符串是否只由空格組成喂走。
范例
s = " "
print(s.isspace())
s = ""
print(s.isspace())
s = "abcd"
print(s.isspace())
執(zhí)行結(jié)果
True
False
False
1.2.4 字符串的公共操作方法
- len()方法
(此為公共方法)
len() 方法返回對(duì)象(字符殃饿、列表、元組等)長(zhǎng)度或項(xiàng)目個(gè)數(shù)芋肠。
范例
s = "alex二哥"
l = len(s)
print(l)
執(zhí)行結(jié)果
6
- count()方法
(此為公共方法)
count() 方法用于統(tǒng)計(jì)字符串里某個(gè)字符出現(xiàn)的次數(shù)乎芳。可選參數(shù)為在字符串搜索的開始與結(jié)束位置帖池。
簡(jiǎn)易說(shuō)明:統(tǒng)計(jì)個(gè)數(shù)
范例
s = "alexaa wusirl"
s1 = s.count("a")
s2 = s.count("y")
s3 = s.count("al")
print(s1)
print(s2)
print(s3)
s = "Hello World!"
print(s.count("o"))
print(s.count("o",0,5))
執(zhí)行結(jié)果
3
0
1
2
1
1.3 列表list
1.3.1 列表的切片(查)
范例
li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
l1 = li[0]
print(l1)
l2 = li[1]
print(l2)
l3 = li[0:3] # 取第一到第三
print(l3)
執(zhí)行結(jié)果
alex
[1, 2, 3]
['alex', [1, 2, 3], 'wusir']
1.3.2 增(列表)
- append:增加到最后
范例1
li = ['alex','wusir','egon','女神','taibai']
li.append("日天")
li.append(1)
print(li)
執(zhí)行結(jié)果
['alex', 'wusir', 'egon', '女神', 'taibai', '日天', 1]
- insert:按照索引去增加
范例
li = ['alex','wusir','egon','女神','taibai']
li.insert(4,"春哥") # 在女神后插入
print(li)
執(zhí)行結(jié)果
['alex', 'wusir', 'egon', '女神', '春哥', 'taibai']
- extend:迭代的去增加
范例
li = ['alex','wusir','egon','女神','taibai']
li.extend("二哥")
print(li)
li.extend([1,2,3])
print(li)
執(zhí)行結(jié)果
['alex', 'wusir', 'egon', '女神', 'taibai', '二', '哥']
['alex', 'wusir', 'egon', '女神', 'taibai', '二', '哥', 1, 2, 3]
4)應(yīng)用范例(append):
模擬hr在原有列表中持續(xù)添加新成員
li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
while 1:
username = input('>>>')
if username.strip().upper() == 'Q':
# strip() 方法用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列奈惑。
# upper() 方法將字符串中的小寫字母轉(zhuǎn)為大寫字母。
break
else:
li.append(username)
print(li)
執(zhí)行結(jié)果
>>>張三
>>>李四
>>>q
['alex', 'wusir', 'egon', '女神', 'taibai', '張三', '李四']
1.3.2 刪(列表)
- pop
范例一:
li = ['taibai','alex','wusir','egon','女神']
li.pop() # 默認(rèn)刪除最后一個(gè)
print(li)
執(zhí)行結(jié)果
['taibai', 'alex', 'wusir', 'egon']
范例二:
li = ['taibai','alex','wusir','egon','女神']
li.pop(1) # 指定位置刪除
print(li)
print(li.pop(1)) # pop方式可顯示返回值
執(zhí)行結(jié)果
['taibai', 'wusir', 'egon', '女神']
wusir # 此為顯示的返回值
- remove:按元素去刪
li = ['taibai','alex','wusir','egon','女神']
li.remove("taibai")
print(li)
執(zhí)行結(jié)果
['alex', 'wusir', 'egon', '女神']
- clear:清空睡汹。成為空列表
范例
li = ['taibai','alex','wusir','egon','女神']
li.clear()
print(li)
執(zhí)行結(jié)果
[]
- del
范例一:
li = ['taibai','alex','wusir','egon','女神']
del li[2:] # 按位置刪拨脉,刪除第三個(gè)開始到最后
print(li)
執(zhí)行結(jié)果
['taibai', 'alex']
范例二:
li = ['taibai','alex','wusir','egon','女神']
del li[0:2] # 刪除前兩個(gè)
print(li)
執(zhí)行結(jié)果
['wusir', 'egon', '女神']
范例三:
li = ['taibai','alex','wusir','egon','女神']
del li # 刪除整個(gè)列表
print(li) # 列表被刪矾睦,此命令將會(huì)報(bào)錯(cuò)
1.3.3 改(列表)
范例一:
li = ['taibai','alex','wusir','egon','女神']
li[0] = '神仙' # 指定索引位置改
print(li)
li[0] = [1,2,3] # 改為內(nèi)嵌列表
print(li)
執(zhí)行結(jié)果
['神仙', 'alex', 'wusir', 'egon', '女神']
[[1, 2, 3], 'alex', 'wusir', 'egon', '女神']
范例二:
li = ['taibai','alex','wusir','egon','女神']
# 切片方式
li[0:2] = '張果老'
print(li)
li[0:3] = [1,2,3,'春哥','咸魚哥']
print(li)
執(zhí)行結(jié)果
['張', '果', '老', 'wusir', 'egon', '女神']
[1, 2, 3, '春哥', '咸魚哥', 'wusir', 'egon', '女神']
1.3.3 查(列表)
范例一:for循環(huán)
li = ['taibai','alex','wusir','egon','女神']
for i in li:
print(i)
執(zhí)行結(jié)果
taibai
alex
wusir
egon
女神
范例二:索引方式
li = ['taibai','alex','wusir','egon','女神']
print(li[0:2]) # 找列表前兩位
執(zhí)行結(jié)果
['taibai', 'alex']
1.3.4 列表增刪改查的綜合應(yīng)用
- lis = [11,22,33,44,55],將改列表的奇數(shù)位的元素刪除
(列表不能在循環(huán)中刪除,否則會(huì)報(bào)錯(cuò))
范例1:
lis = [11,22,33,44,55]
lis = lis[::2]
print(lis)
執(zhí)行結(jié)果
[11, 33, 55]
范例2:
lis = [11,22,33,44,55]
li = []
for i in lis:
if lis.index(i) % 2 == 0:
li.append(i)
lis = li
print(lis)
執(zhí)行結(jié)果
[11, 33, 55]
范例3:
lis = [11,22,33,44,55]
for i in range(len(lis)-1,-1,-1):
if i % 2 == 1:
#print(i)
del lis[i]
#print(lis)
print(lis)
執(zhí)行結(jié)果
[11, 33, 55]
1.3.4 列表的公共操作方法
- len() 方法
len() 方法返回列表元素個(gè)數(shù)落竹。
范例:
li = ['taibai','alex','wusir','egon','女神']
l = len(li)
print(l)
執(zhí)行結(jié)果
5
- count() 方法
count() 方法用于統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)。
范例:
li = ['taibai','alex','wusir','egon','女神']
num = li.count('taibai')
print(num)
執(zhí)行結(jié)果
1
- index() 方法
index() 函數(shù)用于從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置格了。列表中沒(méi)有find()方法
范例:
li = ['taibai','alex','wusir','egon','女神']
print(li.index('wusir')) # 列表沒(méi)有find
執(zhí)行結(jié)果
2
- sort() 方法
sort() 函數(shù)用于對(duì)原列表進(jìn)行排序棉胀,如果指定參數(shù),則使用比較函數(shù)指定的比較函數(shù)秽浇。
范例1:正向排序
li = [1,5,4,7,6,2,3]
li.sort()
print(li)
執(zhí)行結(jié)果
[1, 2, 3, 4, 5, 6, 7]
范例2:反向排序
li = [1,5,4,7,6,2,3]
li.sort(reverse=True)
print(li)
執(zhí)行結(jié)果
[7, 6, 5, 4, 3, 2, 1]
- reverse() 方法
reverse() 函數(shù)用于反向列表中元素浮庐。
li = [1,5,4,7,6,2,3]
li.reverse()
print(li)
執(zhí)行結(jié)果
[3, 2, 6, 7, 4, 5, 1]
1.3.5 列表的嵌套
范例1:直接改某個(gè)元素
li = ['taibai','何仙姑','苑昊',['alex','egon',89],23]
print(li[1][1]) # 只顯示何仙姑的仙
執(zhí)行結(jié)果
仙
例子2:將首字母改為大寫
li = ['taibai','何仙姑','苑昊',['alex','egon',89],23]
# 方法一
# 找到taibai,并將首字母改為大寫
name = li[0].capitalize()
# capitalize()將字符串的第一個(gè)字母變成大寫,其他字母變小寫兼呵。
print(name)
# 再將結(jié)果放入列表兔辅,將之前的taibai替換掉
li[0] = name
print(li)
# 方法二
# 將上述兩條直接改為一條代碼
li[0] = li[0].capitalize()
print(li)
執(zhí)行結(jié)果
Taibai
['Taibai', '何仙姑', '苑昊', ['alex', 'egon', 89], 23]
['Taibai', '何仙姑', '苑昊', ['alex', 'egon', 89], 23]
例子3:
li = ['taibai','何仙姑','苑昊',['alex','egon',89],23]
# 將列表內(nèi)的苑昊改為苑日天(方法一)
li[2] = '苑日天'
print(li)
# 將列表內(nèi)的苑昊改為苑ritian(方法二)
li[2] = li[2].replace('日天','ritian')
# replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串)
print(li)
執(zhí)行結(jié)果
['taibai', '何仙姑', '苑日天', ['alex', 'egon', 89], 23]
['taibai', '何仙姑', '苑ritian', ['alex', 'egon', 89], 23]
例子4:
# 將alex變?yōu)榇髮懤扒茫⒎湃朐?li[3][0] = li[3][0].upper()
# upper() 方法將字符串中的小寫字母轉(zhuǎn)為大寫字母。
print(li)
執(zhí)行結(jié)果
['taibai', '何仙姑', '苑昊', ['ALEX', 'egon', 89], 23]
1.4 元組tuple
元組被稱為只讀列表维苔,即數(shù)據(jù)可以被查詢碰辅,但不能被修改,所以介时,字符串的切片操作同樣適用于元組没宾。例:(1,2沸柔,3)("a","b","c")
大白話:元組為只讀列表循衰,可循環(huán)查詢,可切片褐澎。兒子不能改会钝,孫子可能可以改。
1.4.1 元組的切片(查)
范例
tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')
print(tu[3]) # 取出alex
print("******")
print(tu[0:4]) # 取出前4個(gè)元素
print("******")
for i in tu: # 循環(huán)列出所有元素
print(i)
執(zhí)行結(jié)果
alex
******
(1, 2, 3, 'alex')
******
1
2
3
alex
[2, 3, 4, 'taibai']
egon
1.4.2 元組嵌套內(nèi)的列表改
范例
tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')
tu[4][3] = tu[4][3].upper()
print(tu)
執(zhí)行結(jié)果
(1, 2, 3, 'alex', [2, 3, 4, 'TAIBAI'], 'egon')
1.4.3 元組嵌套內(nèi)的列表增
范例
tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')
tu[4].append("stone")
print(tu)
執(zhí)行結(jié)果
(1, 2, 3, 'alex', [2, 3, 4, 'taibai', 'stone'], 'egon')
1.5 其他常用方法
1.5.1 join()方法
join() 方法用于將序列中的元素以指定的字符連接生成一個(gè)新的字符串工三。
大白話:join可迭代對(duì)象都能用(字符串迁酸,列表,元組俭正,集合)
- 字符串的范例
s = 'alex'
s1 = '_'.join(s)
print(s1)
執(zhí)行結(jié)果
a_l_e_x
- 列表的例子1:
列表轉(zhuǎn)換成字符串(list ---> str)
li = ['taibai','alex','wusir','egon','女神',]
s = '++++'.join(li)
s2 = ''.join(li)
print(s)
print(s2)
執(zhí)行結(jié)果
taibai++++alex++++wusir++++egon++++女神
taibaialexwusiregon女神
- 列表的例子2:
列表轉(zhuǎn)換成字符串(list ---> str)
names = ["rock","alex","monk"]
print("".join(names))
print(" ".join(names))
print(",".join(names))
print("-".join(names))
執(zhí)行結(jié)果
rockalexmonk
rock alex monk
rock,alex,monk
rock-alex-monk
1.5.2 range()方法
range() 函數(shù)返回的是一個(gè)可迭代對(duì)象(類型是對(duì)象)奸鬓,而不是列表類型, 所以打印的時(shí)候不會(huì)打印列表掸读。
- 例子
for i in range(3,10):
print(i)
print("******")
for i in range(10):
print(i)
print("******")
for i in range(0,10,3):
print(i)
print("******")
for i in range(10,0,-2):
print(i)
print("******")
for i in range(10,-1,-2):
print(i)
執(zhí)行結(jié)果
3
4
5
6
7
8
9
******
0
1
2
3
4
5
6
7
8
9
******
0
3
6
9
******
10
8
6
4
2
******
10
8
6
4
2
0
1.6 字典dict
字典的key必須施不可變數(shù)據(jù)類型串远,可哈希。
字典的value為任意數(shù)據(jù)類型儿惫。
1.6.1 增(字典)
- 直接添加:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1['high'] = 185 #沒(méi)有鍵值對(duì)澡罚,添加
print(dic1)
dic1['age'] = 16 #如果有鍵,則值覆蓋
print(dic1)
執(zhí)行結(jié)果
{'age': 18, 'name': 'jin', 'sex': 'male', 'high': 185}
{'age': 16, 'name': 'jin', 'sex': 'male', 'high': 185}
- setdefault()
setdefault() 有鍵值對(duì)姥闪,不做任何改變始苇,沒(méi)有才添加。
范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1.setdefault('weight')
print(dic1)
dic2 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic2.setdefault('weight',150)
print(dic2)
dic2.setdefault('name','二哥')
print(dic2)
執(zhí)行結(jié)果
{'age': 18, 'sex': 'male', 'name': 'jin', 'weight': None}
{'age': 18, 'sex': 'male', 'name': 'jin', 'weight': 150}
{'age': 18, 'sex': 'male', 'name': 'jin', 'weight': 150}
1.6.2 刪(字典)
- pop()
字典 pop() 方法刪除字典給定鍵 key 及對(duì)應(yīng)的值筐喳,返回值為被刪除的值催式。key 值必須給出。 否則避归,返回 default 值荣月。
范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1.pop('age') # 有返回值,按鍵去刪除
print(dic1)
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.pop('二哥',None)) # 可設(shè)置返回值梳毙,用于刪除一個(gè)可能不存在的鍵
print(dic1)
執(zhí)行結(jié)果
{'name': 'jin', 'sex': 'male'}
None
{'name': 'jin', 'sex': 'male', 'age': 18}
- popitem()
字典 popitem() 方法隨機(jī)返回并刪除字典中的一對(duì)鍵和值哺窄。
如果字典已經(jīng)為空,卻調(diào)用了此方法,就報(bào)出KeyError異常萌业。
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.popitem()) # 隨機(jī)刪除坷襟。有返回值,返回值是元組生年,元組里面是刪除的鍵值婴程。
print(dic1)
執(zhí)行結(jié)果
('sex', 'male')
{'age': 18, 'name': 'jin'}
- 直接del
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
del dic1['name'] # 根據(jù)“鍵”刪除(刪除一個(gè)不存在的鍵時(shí),會(huì)報(bào)錯(cuò))
print(dic1)
del dic1 # 刪除整個(gè)字典
print(dic1)
執(zhí)行結(jié)果
{'sex': 'male', 'age': 18}
- clear()
字典(Dictionary) clear() 函數(shù)用于刪除字典內(nèi)所有元素抱婉。
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1.clear() #清空字典
print(dic1)
執(zhí)行結(jié)果
{}
1.6.3 改(字典)
- 直接改
范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1['age'] = 16
print(dic1)
執(zhí)行結(jié)果
{'name': 'jin', 'age': 16, 'sex': 'male'}
- update()
字典(Dictionary) update() 函數(shù)把字典dict2的鍵/值對(duì)更新到dict里档叔。
范例:
dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic.update(dic2)
print(dic)
print(dic2)
執(zhí)行結(jié)果
{'name': 'alex', 'sex': 'male', 'age': 18, 'weight': 75}
{'name': 'alex', 'weight': 75}
1.6.4 查(字典)
- 單獨(dú)顯示鍵,值蒸绩,鍵值
dict.keys() 以列表返回一個(gè)字典所有的鍵
dict.values() 以列表返回字典中的所有值
dict.items() 以列表返回可遍歷的(鍵, 值) 元組數(shù)組
范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.keys())
print(dic1.values())
print(dic1.items())
執(zhí)行結(jié)果
dict_keys(['age', 'sex', 'name'])
dict_values([18, 'male', 'jin'])
dict_items([('age', 18), ('sex', 'male'), ('name', 'jin')])
- 顯示鍵(for循環(huán))
范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
for i in dic1.keys():
print(i)
執(zhí)行結(jié)果
sex
age
name
- 顯示值(for循環(huán))
范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
for i in dic1.values():
print(i)
執(zhí)行結(jié)果
male
18
jin
- 顯示鍵值(for循環(huán))
范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
for k,v in dic1.items():
print(k,v)
執(zhí)行結(jié)果
sex male
age 18
name jin
- 字典(Dictionary) get()
字典(Dictionary) get() 函數(shù)返回指定鍵的值衙四,如果值不在字典中返回默認(rèn)值。
范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.get('name'))
print(dic1.get('name1','沒(méi)有這個(gè)鍵'))
執(zhí)行結(jié)果
jin
沒(méi)有這個(gè)鍵
- 直接根據(jù)鍵顯示值
如果值不在字典中會(huì)顯示報(bào)錯(cuò)信息
范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
v1 = dic1['name']
print(v1)
執(zhí)行結(jié)果
jin
1.6.5 字典的嵌套
范例:
dic = {'name':['alex','wusir','taibai'],
'py9':{'time':'1213',
'learn_money':19800,
'addr':'CBD'},
'age':21
}
# 將age的值改為56
dic['age'] = 56
print(dic)
# 將name的值中加入ritian
print(dic['name'])
dic['name'].append('ritian')
print(dic)
# 將name中的wusir改為大寫
dic['name'][1] = dic['name'][1].upper()
print(dic)
# 在py9中增加一組鍵值對(duì)_方法1
dic['py9']['female'] = 6
print(dic)
# 在py9中增加一組鍵值對(duì)_方法2
dic['py9'].setdefault("female","6")
print(dic)
執(zhí)行結(jié)果
{'age': 56, 'py9': {'learn_money': 19800, 'time': '1213', 'addr': 'CBD'}, 'name': ['alex', 'wusir', 'taibai']}
['alex', 'wusir', 'taibai']
{'name': ['alex', 'wusir', 'taibai', 'ritian'], 'age': 21, 'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD'}}
{'name': ['alex', 'WUSIR', 'taibai'], 'age': 21, 'py9': {'learn_money': 19800, 'time': '1213', 'addr': 'CBD'}}
{'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD', 'female': 6}, 'name': ['alex', 'wusir', 'taibai'], 'age': 21}
1.6.6 字典的操作方法
- fromkeys()方法
字典 fromkeys() 函數(shù)用于創(chuàng)建一個(gè)新字典患亿,以序列 seq 中元素做字典的鍵传蹈,value 為字典所有鍵對(duì)應(yīng)的初始值。
范例1:
dic = dict.fromkeys([1,2,3],'春哥')
print(dic)
執(zhí)行結(jié)果
{1: '春哥', 2: '春哥', 3: '春哥'}
范例2:
dic = dict.fromkeys([1,2,3],[])
print(dic)
dic[1].append('袁姐')
print(dic)
dic[2].extend('二哥')
print(dic)
#參照常規(guī)的字典
dic = {1:[],2:[],3:[]}
print(dic)
dic[1].append('袁姐')
print(dic)
dic[2].extend('二哥') # extend()迭代添加
print(dic)
執(zhí)行結(jié)果
{1: [], 2: [], 3: []}
{1: ['袁姐'], 2: ['袁姐'], 3: ['袁姐']}
{1: ['袁姐', '二', '哥'], 2: ['袁姐', '二', '哥'], 3: ['袁姐', '二', '哥']}
#參照常規(guī)的字典
{1: [], 2: [], 3: []}
{1: ['袁姐'], 2: [], 3: []}
{1: ['袁姐'], 2: ['二', '哥'], 3: []}
范例3:(沒(méi)視頻步藕,不懂老師在表示啥)
dic = dict.fromkeys([1,2,3,],3)
print(dic)
dic[1] = 4
print(dic)
執(zhí)行結(jié)果
{1: 3, 2: 3, 3: 3}
{1: 4, 2: 3, 3: 3}
1.7 其他小知識(shí)點(diǎn)
- 運(yùn)算符is
is 比較卡睦,比較的是內(nèi)存地址 id(內(nèi)容)
數(shù)字、字符串:小數(shù)據(jù)池
數(shù)字的范圍:-5 -- 256
字符串:1漱抓,不能有特殊字符
????2,s20(字符串乘以數(shù)字20) 還是同一個(gè)地址恕齐,s21(字符串乘以數(shù)字21)以后都是兩個(gè)地址
范例:
s1 = 20
s2 = 20
print(s1 is s2)
執(zhí)行結(jié)果
True
另:list dict tuple set不會(huì)相同
范例
l1 = [1,]
l2 = [1,]
print(l1 is l2)
執(zhí)行結(jié)果
False
- id()
id() 函數(shù)用于獲取對(duì)象內(nèi)存地址乞娄。
范例:
s1 = 2000
s2 = 2000
print(id(s1),id(s2))
執(zhí)行結(jié)果
1858070492624 1858070492624
- enumerate() 函數(shù)
enumerate() 函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列显歧,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo)仪或,一般用在 for 循環(huán)當(dāng)中。
范例:
li = ['alex','taibai','wusir','egon']
for i in li:
print(li.index(i),i)
for index,i in enumerate(li,1):
print(index,i)
執(zhí)行結(jié)果
0 alex
1 taibai
2 wusir
3 egon
1 alex
2 taibai
3 wusir
4 egon
1.8 解包(元組士骤,列表范删,字典)
a,b,c = (1,2,3)
print(a)
print(b)
print(c)
a,b,c = ["a","b","c"]
print(a)
print(b)
print(c)
a,b = {"k1":"v1","k2":"v2"}
print(a)
print(b)
執(zhí)行結(jié)果
1
2
3
a
b
c
k2
k1
1.9 數(shù)據(jù)類型的可變與不可變
可變數(shù)據(jù)類型(不可哈希):列表,字典拷肌,集合
不可變數(shù)據(jù)類型(可哈希):數(shù)字到旦,字符串,元組巨缘,布爾值
字典的key必須施不可變數(shù)據(jù)類型添忘,可哈希。
字典的value為任意數(shù)據(jù)類型若锁。