Python高級數據類型(二)

接上一篇博文!

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("循環結束")

在這裏插入圖片描述

最後

訪問量上百了,終於有五個粉絲了!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章