內建物件方法彙總
常用內建物件的方法
String
定義,切片,長度,替換,編列.....
列表/元組
定義,使用,迴圈遍歷......
字典
定義,使用,迴圈遍歷.......
集合Set
連線資料庫!
各種內建模組
os,file,re,time,json.......
- 字串String
定義: 一串字元! 用 ""或'' 引起來! 字串是字串列表,索引從0開始!
字串是字串的列表! 可以通過索引訪問,索引從0開始,-1表示最後一個
索引不能操作範圍!
字串不可變!
編列
+表示連線: 控制檯input()方法輸入的內容都是字串!
切片 [開始:結束:步長] [::-1]倒序
格式化字串
name = tom
age = 20
方法1.使用佔位符格式化
print("名字:%s,年齡:%d"%(name,age))
方法2:格式化
print(f"名字:{name},年齡:{age}")
方法3:格式化
print("名字:{0}年齡{1}".format(name,age))
轉義
\' 轉義
\t 製表符等於4個空格(Tab)
\n 換行 \r\n linux換行
\ 續行(該行還未結束,下一樣繼續)
chr()
內建方法
len(字串) # 長度
chr() 轉化為字元 chr(97)--a chr(65)--A
ord(字元)轉化為對應ASCII編碼 ord('A')-->65
find(字元) 找不到返回-1
index(字元)找不到報錯
replace('老字串','新字串') 替換
splite('字元') 拆分 返回列表!
lower(字串) 轉為小寫
upper(字元) 轉為大寫
strip(字串) 去掉兩遍空格 rstrip(字串) 去掉右邊空格 lstrip(字串)去左邊
not in 'hello' 判斷是否存在!
賦值
s = 'hello'
s[0] --->第一個
s[-1] --->最後一個
字串不可變
s = 'helloWorld'
s[5] ='w' #報錯 str not support item assignment
遍歷
str01='hello'
for i in hello:
print(i)
編列索引和值
for i,v in enumerate(str01):
print(f'第{i},個值:{v}')
生成a-z
print(chr(random.choice(range(97,123))))
A-Z
print(chr(random.choice(range(65,91))))
image-20201030155819095
- list(可變序列)
有序的元素集合! 可以通過索引訪問元素! 正向第1個索引為0,反向第1個是-1
常見的序列型別
列表 list. 可變
元組 tuple
範圍 range
image-20201031142639473
方法介紹
方法 說明
len(列表) 列表長度
列表名[i] 根據索引找 list01[-1] 最後一個
列表名[開始,介紹,步長] 切片
- 列表相加,建立新列表! [1,2]+[4,5]=[1,2,4,5]
max(列表) 返回最大 max([1,2,3])
min(列表) 返回最小
列表.index(元素) 返回元素第一次出現位置 找不到報錯!
列表.count(元素) 統計出現總次數
[表示式 for x in 列表] 列表推倒式,返回新列表
列表[i] 根據索引找值
列表[:]
原列表[::]=新列表 替換原列表中所有值
in 和 not in 判斷是否包含,返回True或False
[1,2,3]*3 重複3遍 [1,2,3,1,2,3,1,2,3]
list(帶轉化的序列) 轉化為列表 list('hello')
list.append(元素) 追加1個值
list.extend(列表) 合併另一個列表,擴充原列表 和+結果一樣!原理不同
list.insert(i,元素) 指定位置插入
list.pop() 刪除並返回最後一個!
list.remove(元素) 移除第一次出現的
list.reverse() 翻轉
list.sort(reverse=True) 排序,預設正序從小到大!reverse引數倒序
1. 定義
list01 = 'hello'
2. 取第一個
print(list01[0])
2. 取最後一個
print(list01[-1])
print(list01[len(list01)-1])
3. 長度
print(len(list01))
4. 切片
print(list01[0,3]) #前2個!
list01= [1,2,3,4,5]
print(list01[2,4]) # 結果3,4
print(list01[-4,-1]) # 不包含-1位置的! 從-4位置開始,2往後取 -->2,3,4
5. 列表相加
list01= ['A','B']
list02= [1,2]
print(list01+list02)# ===>['A','B',1,2] 必須都是列表!
6,列表推倒式
list01= [1,2,3]
list02 = [i+3 for i in list01]
print(list01) # 4,5,6
7. 替換
list01= [1,3,5]
list01[0]= 10 #替換一個
list01[::] = [4,6,9] # 替換
print(list01)# 4,6,9
8.追加
list01=[1,2,3]
list02=[4,5.6]
list01.extend(list02) #===> [1,2,3,4,5,6] 擴充原列表!
- 元組Tuple(不可變序列)
元組合列表一樣都是記憶體中一段連續的儲存空間! 有順序的!
元組不能修改!
建立
t1 = (1,2,3) # 語法1 常用!
t2 = tuple(1,2,3) # 語法2
t2 = tuple([1,2,3,3]) # 語法3
不能重新賦值
t1 = (12,13,35)
t1[0]=3
TypeError: 'tuple' object does not support item assignment # 元組項不支援重新賦值!
不能刪除元素!
字串,列表,元祖轉化
str() # 字串可轉化為列表和元祖!
list()/tuple() 相互轉化!
range(開始,結束,步長
for i in range(0,10): # range 返回的資料型別
print(i) #0到9
4.字典和集合
字典儲存成對存在資料! {key1:value1, k2:v2,.....}
集合: 無序,不重複!
基本語法: {key1:value,key2:value,....}
列表和字典區別
1. 列表時有序的! 字典無序!
2. 檢索方式不同: 列表查詢通過索引,字典通過key ! key格式是字串!
key是字串或數值! key是不可變型別!
key不能重複! 重複會自動覆蓋!
增加/修改
d1 = {}
d1['name']='張三' #增加
d1['age']=20 # 增加
d1['name']='小A' # 修改!
字典推倒式/列表推倒式
d1 = {x:x**2 for i in (1,2,3)}
結果: {1:1,2:4,3:9}
取值: 字典['key'] 或 字典.get(key)
判斷key是否存在!! 'python2.x中 has_key(key)'
d2= {'name': 'AA', 'age':20}
if 'sex' in d2:
print('存在')
for...in 遍歷
d1 ={'name':'張三','age':20,'sex':'男'}
# keys()獲取所有鍵 values()所有值
for k in d1.keys():
print(f'名字{k},值:{d1[k]}')
print(d1.values())
print(d1.items())
# 同時編列key,value
for k,v in d1.items():
print(f'名字{k},值:{v}')
刪除: del 字典/字典[key]
清空 保留儲存空間,clear()
刪除pop(key)
更新一項update({key:value})
- Set(無序不重複)
集合Set中儲存的資料是無序的,而且不能重複!
題目list排重!: 刪除某個list中的重複項? [1,20,22,31,423,1,......]
image-20201102163134289
li = [1,1,5,5,8,8]
set(li)===>搞定!
作業: 測試兩個方法效率? 資料量大時排重效率高的方法!
Set: 可變集合
frozenset : 不可變集合
建立
建立(常用)
s1 = {1,2,3,3} # 結果 (1,2,3)
關鍵字建立
s2= set([1,2,3])
s3= frozenset([1,2,3])
編列
s1 ={'a','b','c'}
for i in s1:
....
是否存在: in/not in
增加集合.add(元素)
刪除集合.remove(元素) 集合.clear()清空 集合.pop()
刪除 -=
s1 = {5,'h','a'}
s2 = set('hai') # {"h","a","i"}
s1 -= s2 # s1 = s1-s2 #只減去共有的!
print(s1) # 結果 5
知識競賽結果 (10道題目)
zhangsan = {1,2,3,5,7,8} # 答對6道
lisi = {5,7,8,9,10} # 答對5道
求: 張三答對,李四未答對!
zhagnsan -=lisi
求: 李四答對,張高三未答對!
lisi -=zhangsan
求:都答對?
刪除所有del 集合名
集合運算
和 < 判斷範圍!
s1 = set('What')
s2 = set('hat')
print(s1>s2) #成立!True
image-20201102170830927
其他內建方法
image-20201102171608626