Python 高級變量之字典和字符串詳解
1、字典的定義
dictionary
(字典)是出列表以外 Python 之中 最靈活 的數據類型,字典統一可以用來 存儲多個數據,通常用於存儲 描述一個 物體 的相關信息;
字典和列表的區別:
- 列表 是 有序 的對象集合;
- 字典 是 無需 的對象集合;
- 字典用 { } 定義
字典使用 鍵值對 存儲數據,鍵值對之間使用 , 分割;
鍵:Key
,是索引;
值: Value
, 是數據;
鍵 和 值 之間使用 ; 分割
鍵必須是唯一的;
值 可以取任何數據類型,但 鍵 隻能使用 字符串、數字 或元組;
# 字典是一個無序的數據集合,使用print函數輸出字典時,通常 # 輸出的順序和定義的順序是不一致的! xiaoming = {"name":"小明", "age":18, "gender":True, "height":1.75, "weight":75.5} print(xiaoming)
字典的基本使用
xiaom_dict = {"name":"小明"} # 取值 #在取值的時候,如果指定的Key不存在,程序會報錯! print(xiaom_dict["name"]) # 增加/刪除 # 如果 key 不存在,會新增鍵值對 xiaom_dict["age"] = 18 # 如果 key 存在,會修改意見存在的鍵值對 xiaom_dict["name"] = "小小明" # 刪除 # 在刪除指定鍵值得時候,如果指定的key不存在,程序會報錯 xiaom_dict.pop("name") print(xiaom_dict)
xioaming_dict = {"name":"小明", "age":18} # 統計鍵值對數量 print(len(xioaming_dict)) # 合並字典 temp_dict = {"height":1.75, "age":20} # 註意 如果被合並的字典中包含已經存在的鍵值對,會覆蓋原有的鍵值對 xioaming_dict.update(temp_dict) # 清空字典 xioaming_dict.clear() print(xioaming_dict)
2、循環遍歷
遍歷 就是 依次 從 字典 中獲取所有鍵值對;
xiaoming_dict = {"name":"小明", "qq":"123456", "phone":"10086"} # 迭代遍歷字典 # 變量K是每一次循環中,獲取到的鍵值對的Key for K in xiaoming_dict: print("%s - %s " % (K,xiaoming_dict[K]))
提示:在實際開發中,由於字典中每一個鍵值對保存數據的類型是不同的,所以針對字典的循環遍歷需求並不是很多。
# 使用 多個鍵值對,存儲 描述一個 物體 的相關新 描述更復雜的數據信息 # 將 多個字典 放在一個列表中,再進行遍歷 card_list = [ {"name":"張三", "qq":"123456", "phone":"110"}, {"name":"李四", "qq":"10086"}, ] for card_info in card_list: print(card_info)
3、字符串的定義
字符串 就是 一串字符,是編程語言中表示文本的數據類型:
雖然可以使用” 或者 ‘ 做字符串的轉義,但是在實際開發中:
如果字符串內部需要使用 ‘ ,可以使用 ” 定義字符串
可以使用 索引 獲取一個字符串中 指定位置的字符,索引計數從0開始;
也可以使用 for 循環遍歷 字符串中加一個字符。
大多數編程語言都是使用” 來定義字符串。
4、字符串的常用操作
在ipython3 中定義一個 字符串,例如:hello_str = “”
輸入 hello_str. 按下 TAB 鍵,ipython 會提示 字符串 能夠使用的方法如下:
hello_str = "hello hello" # 統計字符串長度 print(len(hello_str)) # 統計某一個小字符串出現的次數 print(hello_str.count("llo")) print(hello_str.count('abc')) # 某一個字符串出現的位置 print(hello_str.index("llo")) # 註意:如果使用index 方法傳遞的字符串不存在 程序會報錯! #print(hello_str.index("abc"))
字符串 查找和替換
hello_str = "hello world" # 判斷是否以指定字符串開始 print(hello_str.startswith("hello")) # 判斷是否以指定字符串結束 print(hello_str.endswith("world")) # 查找指定字符串 # index 同樣可以查找指定的字符串在大字符串中的索引 print(hello_str.find("llo")) #index如果指定的字符串不存在,會報錯 # find如果指定的字符串不存在,會返回-1 print(hello_str.find("abc")) # 替換字符串 # replace 方法執行完成之後,會返回一個新的字符串 # 註意:不會修改原有字符串的內容 print(hello_str.replace("world","python")) print(hello_str)
字符串 文本對齊演練
# 假設:以下內容是從網絡上抓取得 # 要求:順序並且居中對齊輸出以下內容 poem = ["登喜鵲樓", "王之渙", "白日依山盡", "黃河入海流", "欲窮千裡目", "更上一層樓"] for poem_str in poem: print("|%s|" % poem_str.center(10," "))
去除空白字符
# 假設:以下內容是從網絡上抓取得 # 要求:順序並且居中對齊輸出以下內容 poem = ["\t\n登喜鵲樓", "王之渙", "白日依山盡\t\n", "黃河入海流", "欲窮千裡目", "更上一層樓"] for poem_str in poem: # 先使用strip 方法去除字符串中的空白字符 # 再使用center 方法居中顯示文本 print("|%s|" % poem_str.strip().center(10," "))
字符串拆分和連接
# 假設:以下內容是從網絡上抓取得 # 要求:將字符串中的空白字符全部去掉 # 再使用“ ” 作為分割符,拼接成一個整齊的字符串 poem_str = ["登喜鵲樓\t", "王之渙\t", "白日依山盡\t\n", "黃河入海流\t\t", "欲窮千裡目\t\t", "更上一層樓"] print(poem_str) # 拆分字符串 poem_list = poem_str.split() print(poem_list) # 合並字符串 result = " ".join(poem_list) print(result)
5、字符串的切片
切片 使用 索引值 來限定范圍,從一個大的 字符串 中 切出 小的 字符串;
列表 和 元組 都是 有序 的集合,都能夠 通過索引值 獲取到對應的數據;
字典 是一個 無序 的集合,是使用 鍵值對 保存數據;
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!