day2 -- 字串常用方法、列表、字典
阿新 • • 發佈:2019-01-12
1.字串常用方法
name = "Convict abc"
count(): print(name.count("c")) # 2
find(): print(name.find("a")) # 8
index(): print(name.index("a")) # 8 如果找不到,會報錯
根據下標區間取值: print(name[0: 4]) # Conv
format():
new_name = "my new name is {name}" print(new_name.format(name="GG"))
# my new name is GG
isdigit():判斷是否為數字
print("11".isdigit()) # True print("abc".isdigit()) #False
join():將要連線的元素序列、字串、元組、字典 連線形成新的字串
print("==".join(["1", "a", "M"])) # 1==a==M
strip():去除首尾空格和換行
print(" abc \n".strip()) # abc
split():按照方法引數中的字元分割,返回分割後的列表
print("1+2+a+c".split("+")) # ['1', '2', 'a', 'c']
2.列表:類似於C或者Java的陣列
values = ["aaa", "bbb", "ccc"]
然而列表也可以存放列表,例如:
values = ["aaa", "bbb", "ccc", "ddd", "eee", "ddd", ["ddd", "eee"]]
列表的常用方法
# 按下標取 # 正序 print(values[0]) print(values[1]) # 負號表示逆著數,一般常用-1來取最後一個值print(values[-1]) # 按下標區間取 [起始,終點),所以是不包括最後一個的 # eg1:取下標 1, 2, 3 對應的值 print(values[1:4]) # eg2:-3對應bbb,-1對應ddd print(values[-3:-1]) # eg3:如果取某一下標直到結尾,冒號之後不寫下標即可 print(values[-2:]) # eg4:如果從起始位置起到某一指定位置,冒號前不寫下標即可 print(values[0:2]) # 按下標,同時加步長 print(values[0:-1:2]) print(values[::2]) print(values[:]) # 增加 values.append("OFF") print(values) values.insert(1, "INSERT") print(values) # 修改 values[0] = "AAA" print(values) # 刪除 values.remove("OFF") # 直接找這個值並且刪除,找不到會報錯 print(values) del values[2] print(values) values.pop(-2) # 取出,可以拿到對應下標的值,如果方法不傳參,預設最後一個 print(values) # 找下標位置,根據引數找,找不到報錯 print(values.index("ddd")) # 統計 print(values.count("ddd")) # 清空 values.clear() print(values) # 擴充套件 values2 = ["!!!", "@@@"] values.extend(values2) print(values) # 排序, 特殊字元 > 數字 > 英文大寫 > 英文小寫, 即按照ASCII排序規則 values.sort() print(values) # 反轉 values.reverse() print(values) # copy 只複製首層列表,多重列表的內層列表不復制,內層列表copy的都是同一個記憶體地址指標 values3 = values.copy() print(values3) names = ["a", "b", ["MM", "NN"], "d"] names2 = names.copy() print(names) print(names2) names2[1] = "B" print(names) print(names2) names[2][0] = "123" print(names) print(names2) # (深copy)直接copy一個副本,資料大時最好不用這個,否則資源消耗大 import copy names = ["a", "b", ["MM", "NN"], "d"] names2 = copy.deepcopy(names) print(names) print(names2) names[2][0] = "123" print(names) print(names2) # 元組tuple(只讀列表),只能讀的列表,沒有增刪改操作 names = ("A", "B") print(names) # 查詢字元在列表中的下標 name = "abc" print(name.index("a")) # 找不到直接報錯 print(name.find("d")) # 找不到返回-1
3.字典: key-value 形式的資料型別,鍵值對型別,類似於json格式,例如:
person1 = { "name": "AAA", "age": 12, "addr": "China" }
然而字典存放的也可以是字典,例如:
people = { "p1": person1, "tel": 888666000 }
對字典取值:
①知道key,直接 字典[“key”]取值,如:
print(person1["age"]) # 12
# 但如果這key是不存在的,則會報錯,如 print(person1["bbb"]) 會直接報錯
②.get()方法
print(person1.get("age")) # 12 print(person1.get("aaa")) # None
# .get()可以傳字典中不存在的key,返回 None,取值時候建議用這個方法
對字典刪除:
①知道key,直接 字典[“key”]取值,如:
del person1["aaa"] # 刪除key為aaa的整個值,如果key不存在,則會報錯
②.pop()方法,取出字典中指定的key以及key所對應的值,所以這個方法是有返回值的,且原字典會移除對應的key及value,如果key不存在則報錯
person1.pop("age") # 12
③.popitem()方法,隨機取出key以及key所對應的值,有返回值,原字典會移除對應的key及value
person1.popitem() # 隨機的
對字典增加:類似json,直接往字典新增key跟value即可
person1["salary"] = 4500
對字典修改:
person1["name"] = "new Name" # 如果key是原字典不存在的,就變成了增加