天天看點

Python練習---字典

練習1: 熟悉字典文法:在終端中循環錄入商品資訊(名稱、價格),

如果名稱是空字元串,則停止。

– 将所有商品的名稱與價格列印出來(一個商品一行)

– 如果錄入了"遊戲機",則單獨列印其價格.

dict_commodity_info = {}
while True:
    name = input("請輸入商品名稱:")
    if name == "":
        break
    price = float(input("請輸入價格:"))
    dict_commodity_info[name] = price
for k, v in dict_commodity_info.items():
    print("%s商品的價格是%f" % (k, v))
if "遊戲機" in dict_commodity_info:
    print(dict_commodity_info["遊戲機"])
           

練習2: 在終端中循環錄入人的資訊(名字、年齡、性别、體重…),

如果名稱是空字元串,則停止。

– 将所有人的資訊列印出來(一個人一行)

– 如果錄入了"張無忌",則單獨列印其資訊(名字、年齡、性别、體重…).

資料結構:

清單存一個元素,字典存兩個元素,将名字作為鍵,後邊三個元素存到清單作為字典的值元素

{ “張無忌”:[26,“男”,50],

“趙敏”:[24,“女”,40] }

dict_person_info = {}
while True:
    name = input("請輸入人的名稱:")
    if name == "":
        break
    age = int(input("請輸入年齡:"))
    sex = input("請輸入性别:")
    weight = float(input("請輸入體重:"))
    dict_person_info[name] = [age, sex, weight]

for k_name, v_info in dict_person_info.items():
    print("%s的年齡是%d,性别是%s,體重是%f" % (k_name, v_info[0], v_info[1], v_info[2]))

if "張無忌" in dict_person_info:
    list_info = dict_person_info["張無忌"]
    print("張無忌的年齡是%d,性别是%s,體重是%f" % (list_info[0], list_info[1], list_info[2]))
           

列印最後一個人的資訊(名字、年齡、性别、體重…)

優化資料結構(友善擷取鍵值)後:

資料結構:{ {“name”:“張無忌”,“age”:26,“sex”:“男”,“weight”:50},

{“name”:“趙敏”,“age”:24,“sex”:“女”,“weight”:40},}

清單
        優點:擷取資料更為靈活(索引/切片)
        缺點:周遊元素擷取資料,速度慢.
         字典:
        優點:根據key擷取值,速度快.
        缺點:擷取資料不靈活(鍵)
             因為散列更占記憶體
           
list_person_info = []
while True:
    name = input("請輸入人的名稱:")
    if name == "":
        break
    age = int(input("請輸入年齡:"))
    sex = input("請輸入性别:")
    weight = float(input("請輸入體重:"))
    dict_info = {"name": name, "age": age, "sex": sex, "weight": weight}
    list_person_info.append(dict_info)

for dict_item in list_person_info:
    print("%s的年齡是%d,性别是%s,體重是%f" % (dict_item["name"], dict_item["age"], dict_item["sex"], dict_item["weight"]))

dict_person = list_person_info[-1]
print("%s的年齡是%d,性别是%s,體重是%f" % (dict_person["name"], dict_person["age"], dict_person["sex"], dict_person["weight"]))
           

繼續閱讀