字串、列表、字典內建方法

随机昵称yi發表於2024-05-14

字串內建方法

【一】字串的查詢 字串內部的字元

預設從左向右找,並返回當前字元在串中的索引座標

【1】find方法

name = 'qwer ooehjkl'
print(name.find('e'))
預設只找一次,找到就不找了
# 2  第二個e不找了

可以指定尋找的區間, 引數不帶''引號  從第三個到最後一個
print(name.find('j',3,-1))
# 9  

可以指定尋找的方向
預設從左向右
print(name.rfind('e'))
# 7  輸出最後一個‘e’在字串中的正向位置

查詢不存在的字元不會報錯,返回了 -1
print(name.rfind('x'))
# -1

【2】index方法

查詢不存在的字元會報錯
name = 'qwer ooehjkl'
print(name.index('x'))
報錯

# 預設查詢一次且從左向右
print(name.index('e'))
# 2

控制查詢方向
print(name.rindex('e'))
# 7 輸出最後一個‘e’在字串中的正向位置

指定尋找區間,引數不帶''引號
print(name.rindex('e',5,-1))
# 7

【二】計算當前字元在字串中出現次數

計算次數
name = 'qwer ooehjkle'
print(name.count('e'))
# 3

左側‘e’位置
print(name.find('e'))

右側‘e’位置
print(name.rindex('e'))

中間‘e’位置
print(name.find('e',name.find('e')+1,name.find('e')))

3
2
12
7

【三】填充字串

【1】填充兩側

name = 'qwer'
# (填充的長度【加上name長度填充後的長度】,填充字元)
# 填充偶數,,兩側一致
print(name.center(len(name)+2,'*'))
# *qwer*

#填充奇數,左少右多
print(name.center(len(name)+3,'*'))
# *qwer**

【2】填充右側 L 右對齊

print(name.ljust(len(name)+3,'*'))
# qwer***

【3】填充左側 R 左對齊

print(name.rjust(len(name)+3,'*'))
# ***qwer

【4】補充字串,不夠的查高度用0補齊

print(name.zfill(len(name)+3))
# 000qwer

【四】製表符

print(len('qwer'))
name = 'qw\ter'
print(name)
print(len(name))

4
qw	er
5

【五】首字母大寫

sentence = 'my name is dream'

# 【1】一個句子的首字母大寫
print(sentence.capitalize())

# 【2】一個句子中的每一個單詞的首字母大寫
print(sentence.title())

My name is dream
My Name Is Dream

【六】單詞大小寫翻轉

name = 'Dream'
print(name.swapcase())

# dREAM

name = 'Dream123'
name_one = 'Dream'
name_two = 'Dream&'

# 字串中既可以包含數字也可以包含字母,
print(name.isalnum())    
# True

# 字串中只包含字母
print(name_one.isalpha())    
# False

# 字串是否是合法識別符號
print(name_two.isidentifier())  
# True

# 字串是否是純小寫,
print(name.islower())    
# True

# 字串是否是純大寫
print(name.isupper())   
# False

# 字串是否全是空格
print(name.isspace())    
# False

# 字串中的單詞首字母是否都是大寫
print(name.istitle())    
# False

列表的內建方法

name_list = ['qwer','dfcv']

【一】內建方法(必會)

【1】型別強制轉換

#(1)字串可以,並且轉換後的列表是字串的每一個字元
name = 'dream'
print(list(name))
['d', 'r', 'e', 'a', 'm']

# (2)元組可以,轉換後的列表中的元素型別和轉換之前一致
num_tuple = (1, 2, 3, 4)
print(list(num_tuple))
[1, 2, 3, 4]

# (3)字典可以,轉換後的列表中儲存的元素是當前字典的鍵
name_dict = {'username': 'dream', 'password': '521'}
print(list(name_dict))
['username', 'password']

# (4)集合可以,並且是基於集合去重特性後轉換出,如果會繼承集合亂序的特性
num_set = {1, 2, 3, 6, 6, 6, 6}
print(list(num_set))
[1, 2, 3, 6]

# (5)range關鍵字也可以轉換為列表,並且元素是指定區間內的每一個元素
print(list(range(0, 5)))
[0, 1, 2, 3, 4]

# 數字不可以 整數和浮點數
print(list(1))
報錯
# 布林也不可以
print(list(True))

【2】支援索引取值

大於總長度報錯

num_list = [1,3,5,7,9]
print(num_list[10])
報錯

【3】切片

num_list = [1,3,5,7,9]
print(num_list[0:5:2])
# [1, 5, 9]
負索引取時,第一個起始位置要從右往左取

print(num_list[-1:0:-2])
結束位置的0代表正向取時的0號位

print(num_list[-1:-4:-2])

【4】計算列表內的元素個數 len

num_list = [1,3,5,7,9]
print(len(num_list))
# 5

【5】成員運算

num_list = ['0', 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(1 in num_list)
print(0 in num_list)

True
False

【6】列表操作 增刪查改

#(1)增加
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# append ;
# 預設追加到最後 沒有返回值 影響到的是原來的列表
num_list.append(999)
print(num_list)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 999]

# extend
# 可以追加多個元素 可迭代
num_list.extend([11, 22])
num_list.extend((22, 3))
# 字串雖然可以迭代但是不行
# num_list.extend('dream')
# print(num_list)

# insert
# 可以按照索引位置插入元素
# 引數(索引位置,元素)
num_list.insert(0, 666)
print(num_list)
[666, 1, 2, 3, 4, 5, 6, 7, 8, 9, 999, 11, 22, 22, 3]

# (2)刪除
# del 列表[索引]
del num_list[0]
# pop() ;彈出
# 可以接收返回值,並且返回值就是你刪除的哪個元素
如果不寫引數,則預設彈出最後一位元素,可以用變數名接受
print(num_list.pop())
3

# 可以放索引位置
print(num_list.pop(0))
1

# remove : 必須放定值 沒有返回值 只能remove列表中存在的值
num_list.remove(2)
num_list.remove(999)
print(num_list)
[3, 4, 5, 6, 7, 8, 9, 11, 22, 22]

【7】顛倒元素

# 列表.reverse(): 將列表中所有元素翻轉

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 'dream']
print(num_list.reverse())
print(num_list)

None
['dream', 9, 8, 7, 6, 5, 4, 3, 2, 1]

# list(reversed(列表))
要強轉list才能翻轉

【8】對列表中的元素進行排序

# sort 沒有返回值  將原來的列表進行排序
影響的是原來的列表
num_list = [1, 4, 8, 7, 9, 6]
print(num_list.sort())
None

print(num_list)
[1, 4, 6, 7, 8, 9]

# # 將排序後的結果翻轉
print(num_list.sort(reverse=True))
None

print(num_list)
[9, 8, 7, 6, 4, 1]

# sorted函式 : (列表,翻轉) 有返回值  返回值就是排序後的列表
不影響原本的列表
# 引數  reverse=True 將排序後的結果翻轉
num_new = sorted(num_list, reverse=True)
print(num_new)
[9, 8, 7, 6, 4, 1]

print(num_list)
[1, 4, 8, 7, 9, 6]

【9】遍歷迴圈列表

# for 直接遍歷列表 遍歷索引range
# while 定義起始值 < 列表最大長度 按照索引取值

【10】列表的步長

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 從頭取到尾但是步長為2
print(num_list[::2])
[1, 3, 5, 7, 9]

# 從頭取到尾步長為2但是是倒著取
print(num_list[::-2])
[9, 7, 5, 3, 1]

# 列表翻轉
print(num_list[::-1])
[9, 8, 7, 6, 5, 4, 3, 2, 1]

字典的內建方法

【一】字典

字典中的資料都是kv鍵值對

不支援索引取值,只能支援鍵值對取值

【二】內建方法

user_data = {'username': "wang", 'password': '123'}

【1】查

(1)【鍵】:若是鍵不存在,則查詢報錯
print(user_data['username'])
wang

(2).get(鍵) : 如果這個鍵不存在 不會報錯並且返回的是 None
print(user_data.get('password'))
print(user_data.get('age'))
123
None

【2】增

(1)字典[鍵]=值
特點: 這種方式新增的鍵值對。字典中若存在該鍵對應的值,就會覆蓋掉,如果不存在,會將鍵值對新增進去
user_data['age'] = 18
# {'username': 'wang', 'password': '123', 'age': 18}

user_data['username'] = 'opp'
# {'username': 'opp', 'password': '123', 'age': 18}

user_data['password'] = 666
# {'username': 'opp', 'password': 666, 'age': 18}

print(user_data)

(2)setdefault()
有返回值,是加進去的值,不是鍵
print(user_data.setdefault('hobby', 'music'))
print(user_data)
# music  返回值
# {'username': 'opp', 'password': 666, 'age': 18, 'hobby': 'music'}

(3)update方法
第一種方案:放一個新字典
data_user = {
    'addr' : 'shanghai',
    'username' : 'du'
}
user_data.update(data_user)
# {'username': 'du', 'password': 666, 'age': 18, 'hobby': 'music', 'addr': 'shanghai'}

第二種方案:直接放關鍵字 = 值
user_data.update(age=100)
#{'username': 'du', 'password': 666, 'age': 100, 'hobby': 'music', 'addr': 'shanghai'}

【3】刪

(1)del 刪除字典[鍵]
del user_data['username']
# {'password': 666, 'age': 100, 'hobby': 'music', 'addr': 'shanghai'}

(2)pop(鍵):將字典中指定的鍵對應的值彈出
print(user_data.pop('addr'))
print(user_data)
# shanghai
# {'password': 666, 'age': 100, 'hobby': 'music'}

(3) clear:清空字典
print(user_data.clear())
# None 無返回值
# {}

(4)popitem:彈出鍵值對 預設彈出最後的
print(user_data.popitem())
print(user_data)     
# ('hobby', 'music')
# {'password': 666, 'age': 100}

【4】計算元素個數

print(len(user_data))
# 2

【5】成員運算

 預設運算的是鍵

【6】鍵對

print(user_data.keys())
# dict_keys(['password', 'age'])

成員變數
print('password' in user_data.keys())
# True

【7】值對

print(user_data.values())
print('666' in user_data.values())
# dict_values([666, 100])
# False

【8】鍵值對

print(user_data.items())
# print('666' in user_data.values())
for key, value in user_data.items():
    print(key, value)
# dict_items([('password', 666), ('age', 100)])
# password 666
# age 100

【9】遍歷迴圈

for key in user: 拿到的值就是鍵

相關文章