1. 程式人生 > 實用技巧 >內建物件方法彙總

內建物件方法彙總

常用內建物件的方法

String
定義,切片,長度,替換,編列.....
列表/元組
定義,使用,迴圈遍歷......
字典
定義,使用,迴圈遍歷.......
集合Set
連線資料庫!
各種內建模組
os,file,re,time,json.......

  1. 字串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

  1. 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] 擴充原列表!

  1. 元組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})

  1. 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