1. 程式人生 > >字典作業及默寫

字典作業及默寫

 

1,有如下變數(tu是個元祖),請實現要求的功能  

tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])

    a. 講述元祖的特性

    b. 請問tu變數中的第一個元素 "alex" 是否可被修改?

    c. 請問tu變數中的"k2"對應的值是什麼型別?是否可以被修改?如果可以,請在其中新增一個元素 "Seven"

  d. 請問tu變數中的"k3"對應的值是什麼型別?是否可以被修改?如果可以,請在其中新增一個元素 "Seven"

 

2, 字典dic,dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}

  a.請迴圈輸出所有的key

  b.請迴圈輸出所有的value

    c. 請迴圈輸出所有的key和value

  d. 請在字典中新增一個鍵值對,"k4": "v4",輸出新增後的字典

  e. 請在修改字典中 "k1" 對應的值為 "alex",輸出修改後的字典

  f. 請在k3對應的值中追加一個元素 44,輸出修改後的字典

  g. 請在k3對應的值的第 1 個位置插入個元素 18,輸出修改後的字典

 

3,av_catalog = {
    "歐美":{
        "www.youporn.com": ["很多免費的,世界最大的","質量一般"],
        "www.pornhub.com": ["很多免費的,也很大","質量比yourporn高點"],
        "letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"],
        "x-art.com":["質量很高,真的很高","全部收費,屌絲請繞過"]
    },
    "日韓":{
        "tokyo-hot":["質量怎樣不清楚,個人已經不喜歡日韓範了","verygood"]
    },
    "大陸":{
        "1024":["全部免費,真好,好人一生平安","伺服器在國外,慢"]
    }
}

    a,給此 ["很多免費的,世界最大的","質量一般"]列表第二個位置插入一個  元素:'量很大'。
    b,將此 ["質量很高,真的很高","全部收費,屌絲請繞過"]列表的 "全部收費,屌絲請繞過" 刪除。
    c,在

["質量很高,真的很高","全部收費,屌絲請繞過"]列表中新增"金老闆最喜歡這個"。
    d,將此["質量怎樣不清楚,個人已經不喜歡日韓範了","verygood"]列表的 "verygood"全部變成大寫。

  e,給'大陸' 對應的字典新增一個鍵值對 '1048' :['一天就封了']

    f,刪除此"letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"]鍵值對。

    g,給此["全部免費,真好,好人一生平安","伺服器在國外,慢"]列表的第一個元素,加上一句話:'可以爬下來'

 

4、有字串 "k:1|k1:2|k2:3|k3:4" 處理成字典 {'k':1,'k1':2....}  (升級題)

 

5、元素分類

有如下值li= [11,22,33,44,55,66,77,88,99,90],將所有大於 66 的值儲存至字典的第一個key中,將小於 66 的值儲存至第二個key的值中。

即: {'k1': 大於66的所有值列表, 'k2': 小於66的所有值列表}

 

6、輸出商品列表,使用者輸入序號,顯示使用者選中的商品(升級題)   

商品列表:

 goods = [{"name": "電腦", "price": 1999},
         {"name": "滑鼠", "price": 10},
         {"name": "遊艇", "price": 20},
         {"name": "美女", "price": 998}, ]

 

要求:

1:頁面顯示 序號 + 商品名稱 + 商品價格,如:

       1 電腦 1999

       2 滑鼠 10

      …

2:使用者輸入選擇的商品序號,然後列印商品名稱及商品價格

3:如果使用者輸入的商品序號有誤,則提示輸入有誤,並重新輸入。

4:使用者輸入Q或者q,退出程式。

 

 

明日默寫內容。

 

1)字典的增刪改查。

2)過濾敏感字元程式碼的默寫。

 

li = ["蒼老師","東京熱","武藤蘭","波多野結衣"]

comment = input('請輸入評論>>>')
for i in li:
    if i in comment:
        comment = comment.replace(i,'*'*len(i))
print(comment)

 

  1 ##課上留的作業
  2 # 關於set集合作業: 寫一個彩票開獎(36選7)
  3 ##題意理解:從1-36中隨機產生7個不重複的數字作為開獎數字
  4 from random import randint
  5 nums = set()
  6 #下面是相同的思想,不同的程式碼堆砌方式
  7 #方法1
  8 while True:
  9     nums.add(randint(1,36)) #返回1-10之間的一個隨機數,包括10
 10     if len(nums) == 7:
 11         break
 12 print(nums)
 13 #方法2
 14 while len(nums) != 7:
 15     nums.add(randint(1,36))
 16 print(nums)
 17 
 18 # day5作業及默寫
 19 #
 20 # 1,有如下變數(tu是個元祖),請實現要求的功能
 21 #
 22 tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
 23 #     a. 講述元祖的特性
 24         #元組用()表示, 只讀列表.
 25         # 元組也有索引和切片
 26         # 元組也是可迭代的
 27         # 元組的不可變: 指向不變
 28 
 29 #     b. 請問tu變數中的第一個元素 "alex" 是否可被修改?不可以
 30 #     c. 請問tu變數中的"k2"對應的值是什麼型別?是否可以被修改?如果可以,請在其中新增一個元素 "Seven"
 31 tu[1][2]['k2'].append("Seven")#列表,可以修改
 32 # d. 請問tu變數中的"k3"對應的值是什麼型別?是否可以被修改?如果可以,請在其中新增一個元素 "Seven"
 33 # 元組,不可以修改
 34 
 35 
 36 # 2, 字典dic,
 37 dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
 38 # a.請迴圈輸出所有的key
 39 for k in dic:
 40     print(k)
 41 # b.請迴圈輸出所有的value
 42 for v in dic.values():
 43     print(v)
 44 # c. 請迴圈輸出所有的key和value
 45 for k,v in dic.items():
 46     print(k,v)
 47 # d. 請在字典中新增一個鍵值對,"k4": "v4",輸出新增後的字典
 48 dic["k4"] = "v4"
 49 # e. 請在修改字典中 "k1" 對應的值為 "alex",輸出修改後的字典
 50 dic["k1"] = "alex"
 51 
 52 # f. 請在k3對應的值中追加一個元素 44,輸出修改後的字典
 53 dic["k3"].append(44)
 54 print(dic)
 55 # g. 請在k3對應的值的第 1 個位置插入個元素 18,輸出修改後的字典
 56 dic["k3"].insert(1,18)
 57 print(dic)
 58 
 59 
 60 # 3,
 61 av_catalog = {
 62     "歐美":{
 63         "www.youporn.com": ["很多免費的,世界最大的","質量一般"],
 64         "www.pornhub.com": ["很多免費的,也很大","質量比yourporn高點"],
 65         "letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"],
 66         "x-art.com":["質量很高,真的很高","全部收費,屌絲請繞過"]
 67     },
 68     "日韓":{
 69         "tokyo-hot":["質量怎樣不清楚,個人已經不喜歡日韓範了","verygood"]
 70     },
 71     "大陸":{
 72         "1024":["全部免費,真好,好人一生平安","伺服器在國外,慢"]
 73     }
 74 }
 75 #
 76 # a,給此 ["很多免費的,世界最大的","質量一般"]列表第二個位置插入一個  元素:'量很大'。
 77 av_catalog["歐美"]["www.youporn.com"].insert(2,'量很大')
 78 # b,將此 ["質量很高,真的很高","全部收費,屌絲請繞過"]列表的 "全部收費,屌絲請繞過" 刪除。
 79 av_catalog["歐美"]["x-art.com"].remove("全部收費,屌絲請繞過")
 80 # c,在此 ["質量很高,真的很高","全部收費,屌絲請繞過"]列表中新增"金老闆最喜歡這個"。
 81 av_catalog["歐美"]["x-art.com"].append("金老闆最喜歡這個")
 82 # d,將此["質量怎樣不清楚,個人已經不喜歡日韓範了","verygood"]列表的 "verygood"全部變成大寫。
 83 av_catalog["日韓"]["tokyo-hot"][1].upper()
 84 # e,給'大陸' 對應的字典新增一個鍵值對 '1048' :['一天就封了']
 85 av_catalog["大陸"]["1048"] = ['一天就封了']
 86 # f,刪除此"letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"]鍵值對。
 87 av_catalog["歐美"].pop("letmedothistoyou.com")
 88 del av_catalog["歐美"]["letmedothistoyou.com"]
 89 # g,給此["全部免費,真好,好人一生平安","伺服器在國外,慢"]列表的第一個元素,加上一句話:'可以爬下來'
 90 av_catalog["大陸"]["1024"][0] += '可以爬下來'
 91 
 92 
 93 #
 94 # 4、有字串 "k:1|k1:2|k2:3|k3:4" 處理成字典 {'k':1,'k1':2....}  (升級題)
 95 dic = {}
 96 s = "k:1|k1:2|k2:3|k3:4"
 97 for el in s.split('|'):  #['k:1','k1:2','k2:3,'k3:4']
 98     k,v = el.split(':') #解構   k,v = el[0],el[-1]
 99     dic[k] = int(v)
100 print(dic)
101 
102 # 5、元素分類
103 # 有如下值li= [11,22,33,44,55,66,77,88,99,90],將所有大於 66 的值儲存至字典的第一個key中,將小於 66 的值儲存至第二個key的值中。
104 # 即: {'k1': 大於66的所有值列表, 'k2': 小於66的所有值列表}
105 li= [11,22,33,44,55,66,77,88,99,90]
106 dic = {'k1': [], 'k2': []}
107 for i in li:
108     if i > 66:
109         dic['k1'].append(i)
110     elif i < 66:
111         dic['k2'].append(i)
112 print(dic)
113 # 6、輸出商品列表,使用者輸入序號,顯示使用者選中的商品(升級題)
114 # 商品列表:
115 # goods = [{"name": "電腦", "price": 1999},
116 #      {"name": "滑鼠", "price": 10},
117 #      {"name": "遊艇", "price": 20},
118 #      {"name": "美女", "price": 998}, ]
119 
120 # 要求:
121 # 1:頁面顯示 序號 + 商品名稱 + 商品價格,如:
122 #           1 電腦 1999
123 #                2 滑鼠 10
124 #
125 # 2:使用者輸入選擇的商品序號,然後列印商品名稱及商品價格
126 # 3:如果使用者輸入的商品序號有誤,則提示輸入有誤,並重新輸入。
127 # 4:使用者輸入Q或者q,退出程式。
128 goods = [{"name": "電腦", "price": 1999},
129      {"name": "滑鼠", "price": 10},
130      {"name": "遊艇", "price": 20},
131      {"name": "美女", "price": 998}, ]
132 while 1:
133     for i in range(len(goods)):
134         print('%s %s %s'%(i+1,goods[i]['name'],goods[i]['price']))
135     num = input('請輸入要選擇的商品序號(Q退出程式):').strip()
136     if num.isdigit():
137         num = int(num)
138         if num < len(goods):
139             print('%s %s'%(goods[num-1]['name'],goods[num-1]['price']))
140         else:
141             print('商品序號有誤,請重新輸入')
142     elif num.upper() == 'Q':
143         break
144     else:
145         print('輸入有誤,請重新輸入')
146 
147 
148 
149 
150 
151 # 明日默寫內容。
152 #
153 # 1)字典的增刪改查。
154 '''
155         1. 新增
156             dic[新key] = 值
157 
158             setdefault(key,value) key不存在,新增鍵值對
159         2. 刪除
160             pop(key) 刪除指定鍵的鍵值對
161             ## dic.popitem() # 隨機刪除一項(現在的版本一般是彈出最後一項)
162             ##del dic["李安"]  
163             ##dic.clear() # 清空
164         3. 修改
165             dic[老key] = (新)值
166             update() 更新字典(迭代更新,類似於列表的 extend)
167         4. 查詢
168             dic[key]  ##直接使用key就可以拿到value
169             get(key, 值) ##當key不存在. 返回第二個引數. 預設第二個引數是None
170             setdefault(key, value)  key存在,返回對應的 value,key 不存在,先新增,再返回對應的 value
171         5. 遍歷
172         # 1. 使用for迴圈直接遍歷字典的key
173         # for key in dic:
174         #     print(key)
175         #     print(dic[key])
176         
177         # 2. 可以使用字典的items()+解構可以直接獲取到key和value
178         # for k, v in dic.items():
179         #     print(k)
180         #     print(v)
181 '''
182 
183 # 2)過濾敏感字元程式碼的默寫。
184 
185 li = ["蒼老師","東京熱","武藤蘭","波多野結衣"]
186 
187 comment = input('請輸入評論>>>')
188 for i in li:
189     if i in comment:
190         comment = comment.replace(i,'*'*len(i))
191 print(comment)
參考答案