1. 程式人生 > >day2 -- 字串常用方法、列表、字典

day2 -- 字串常用方法、列表、字典

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是原字典不存在的,就變成了增加