字串內建方法
【一】字串的查詢 字串內部的字元
預設從左向右找,並返回當前字元在串中的索引座標
【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: 拿到的值就是鍵