接上一篇博文!
Python高級數據類型
字典
字典是一個無序的數據集合,使用print函數輸出字典時,通常輸出的順序和定義的順序是不一致的。
xiaoming = {"name": "小明",
"age": 18,
"gender": True,
"height": 1.75,
"weight": 75.5}
字典基本使用
與列表基本一致
xiaoming_dict = {"name": "小明"}
# 1.取值
print(xiaoming_dict["name"])
# 2.增加/刪改
# 如果key不存在,會新增鍵值對
xiaoming_dict["age"] = 18
# 如果key存在,會修改已經存在的鍵值對
xiaoming_dict["name"] = "小小明"
# 3.刪除
xiaoming_dict.pop("name")
print(xiaoming_dict)
一些特有的地方
xiaoming_dict = {"name": "小明",
"age": 18}
# 1.統計鍵值對數量
print(len(xiaoming_dict))
# 2.合併字典
temp_dict = {"height": 1.75}
# 注意:如果被合併的字典中包含已經存在的鍵值對,會覆蓋原有的鍵值對
xiaoming_dict.update(temp_dict)
# 3.清空字典
xiaoming_dict.clear()
遍歷字典
繼續使用for循環迭代遍歷。
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": "12345",
"phone": "110"},
{"name": "李四",
"qq": "54321",
"phone": "10086"},
]
for card_info in card_list:
print(card_info)
字符串
Python中使用’ '或者" "來創建一個字符串,Python中沒有單字符,單個字符也是作爲一個字符串使用。
str1 = 'hello'
str2 = "hello"
Python中單引號和雙引號基本上沒啥區別。
字符串統計操作
hello_str = "hello hello"
# 1.統計字符串長度
print(len(hello_str))
# 2.統計某一個小(子)字符串出現的次數
print(hello_str.count("llo"))
print(hello_str.count("abc"))
# 3.某一個子字符串出現的位置
print(hello_str.index("o"))
# 如果使用index方法傳遞的子字符串不存在,程序會報錯
# print(hello_str.index("abc"))
字符串判斷方法
判斷字符串中間是否有空格啊,是否有中文數字啊,是否有小數啊等等。
# 1.判斷空白字符
space_str = " \t\n\r"
print(space_str.isspace())
# 2.判斷字符串中是否只包含數字
# 都不能判斷小數
# num_str = "1.1"
# num_str = "\u00b2"
# 中文數字
num_str = "一千零一"
print(num_str)
print(num_str.isdecimal())
print(num_str.isdigit())
print(num_str.isnumeric())
字符串的查找與替換
下面的代碼塊介紹的很清楚。
hello_str = "hello world"
# 1.判斷是否以指定字符串開始
print(hello_str.startswith("Hello"))
# 2.判斷是否以指定字符串結束
print(hello_str.endswith("world"))
# 3.查找指定字符串
# index方法同樣可以查找指定的字符串在大字符中的索引
print(hello_str.find("llo"))
# index 方法指定的字符串不存在,會報錯
# find 方法指定的字符串不存在,會返回-1
print(hello_str.find("abc"))
# 4.替換字符串
# replace 方法執行完成之後,會返回一個新的字符串
# 注意:不會修改原有字符串的內容
print(hello_str.replace("world", "python"))
print(hello_str)
字符串文本對齊
下面有一首詩,如果就像這樣輸出過來是不是很難看,Python可以通過字符串處理來使他變得更整齊。
# 把下列文字居中對齊
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 更上一層樓"
print(poem_str)
# 1.拆分字符串
poem_list = poem_str.split()
print(poem_list)
# 2.合併字符串
result = " ".join(poem_list)
print(result)
綜合演練
Python遍歷字典的列表。
students = [
{"name": "阿土"},
{"name": "小美"}
]
# 在學員列表中搜索指定的姓名
find_name = "張三"
for stu_dict in students:
print(stu_dict)
if stu_dict["name"] == find_name:
print("找到了 %s" % find_name)
# 如果已經找到,應該直接退出循環,而不再遍歷後續的元素
break
else:
# 如果希望在搜索列表時,所有的字典檢查之後,都沒有發現需要搜索的目標
# 還希望得到一個統一的提示
print("抱歉沒有找到 %s" % find_name)
print("循環結束")
最後
訪問量上百了,終於有五個粉絲了!!!