# 1
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
a 讲述元组的特性:
1 不可变数据类型,没有增删改查,可以存储任意数据类型
2 元组中的元素可循环查找,列表查找;如果元组里面包含可变数据类型, 可以间接修改元组内容;
3 元组如果为空的话,t=()可以直接定义,也可以t=tuple([ ])来定义
4 只有一个元素时, 后面一定要加逗号, 否则数据类型不确定
5 元组是可以索引和切片的;元组是可以重复与连接的;
6 可以使用成员操作符in not in
7 也可以通过for、枚举和zip来实现显示列表:
#
# b. 请问tu变量中的第⼀个元素 "alex" 是否可被修改?
tu = list(tu)
tu[0] = 'ale'
print(tu)
# c 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加⼀个元素 "Seven"
print(tu[1][2]["k2"],type(tu[1][2]["k2"]))
#d 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加⼀个元素 "Seven
print(tu[1][2]["k3"],type(tu[1][2]["k3"]))
# 2 字典dic,
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
# 请循环输出所有的key
for key in dic.keys():
print(key)
print(dic.keys())
# 请循环输出所有的value
for value in dic.values():
print(value)
# c. 请循环输出所有的key和value
# d. 请在字典中添加⼀个键值对,"k4": "v4",输出添加后的字典
# e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
# f. 请在k3对应的值中追加⼀个元素 44,输出修改后的字典
# g. 请在k3对应的值的第 1 个位置插⼊个元素 18,输出修改后的字典
for k , v in dic.items():
print(k , v)
dic['k4']='v4'
print(dic)
dic['k1']='alex'
print(dic)
#
# dic['k3'].append(44)
# print(dic)
#
# dic['k3'].insert(1,18)
# print(dic)
av_catalog = {
"欧美":{
"www.太⽩.com": ["很多免费的,世界最⼤的","质量⼀般"],
"www.alex.com": ["很多免费的,也很⼤","质量⽐yourporn⾼点"],
"oldboy.com": ["多是⾃拍,⾼质量图⽚很多","资源不多,更新慢"],
"hao222.com":["质量很⾼,真的很⾼","全部收费,屌丝请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个⼈已经不喜欢⽇韩范了","verygood"]
},
"大陆":{
"1024":["全部免费,真好,好⼈⼀⽣平安","服务器在国外,慢"]
}}
# a,给此 ["很多免费的,世界最⼤的","质量⼀般"]列表第⼆个位置插⼊⼀个 元素:'量很⼤'。
# b,将此 ["质量很⾼,真的很⾼","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过"删除。
# c,将此["质量怎样不清楚,个⼈已经不喜欢⽇韩范了","verygood"]列表的"verygood"全部 变成⼤写。
# d,给 '⼤陆' 对应的字典添加⼀个键值对 '1048' :['⼀天就封了']
# e,删除键值对:"oldboy.com": ["多是⾃拍,⾼质量图⽚很多","资源不多,更新慢"]
# f,给此["全部免费,真好,好⼈⼀⽣平安","服务器在国外,慢"]列表的第⼀个元素,加上⼀句话:'可以爬下来'
av_catalog['欧美']["www.太⽩.com"].insert(1,"量很大")
del av_catalog['欧美']["hao222.com"][1]
av_catalog['日韩']["tokyo-hot"][1] = av_catalog['日韩']["tokyo-hot"][1].upper()
av_catalog['大陆']['1024'] .insert(1,'可以爬下来')
av_catalog['大陆']['1048'] = '一天就疯了'
del av_catalog['欧美']["oldboy.com"]
print(av_catalog)
# 有字符串"k: 1|k1 :2|k2:3 |k3 :4" 处理成字典 {'k':1,'k1':2....}
str1 = "k: 1|k1 :2|k2:3 |k3 :4"
lst1 =str1.split("|")
dic = {}
for i in lst1:
lst2 = i.split(":")
dic[lst2[0].strip()] = int(lst2[1].strip())
print(dic)
有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有⼤于 66 的值保存⾄字典的第⼀个key中,将⼩于 66 的值保存⾄第⼆个key的值中。
即: {'k1': ⼤于66的所有值列表, 'k2': ⼩于66的所有值列表}
li= [11,22,33,44,55,66,77,88,99,90]
list1 = []
list2 = []
dic = {}
for i in li:
if i > 66:
list1.append(i)
else:
list2.append(i)
dic['k1'] = list1
dic['k2'] = list2
print(dic)
# .输出商品列表,⽤户输⼊序号,显示⽤户选中的商品
# 商品列表:
goods = [{"name": "电脑", "price": 1999},
{"name": "⿏标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美⼥", "price": 998}, ]
# 要求:
# 1:⻚⾯显示 序号 + 商品名称 + 商品价格,如:
# 1 电脑 1999
# 2 ⿏标 10
# …
# 2:⽤户输⼊选择的商品序号,然后打印商品名称及商品价格
# 3:如果⽤户输⼊的商品序号有误,则提示输⼊有误,并重新输⼊。
# 4:⽤户输⼊Q或者q,退出程序。
for i in range(len(goods)):
print(i+1,goods[i]['name']," ",goods[i]['price'])
while True:
str1 = input("请输入你你选择的商品序号: ").strip()
if str1 =="Q" or str1 == "q":
break
else:
if int(str1)-1 not in range(len(goods)):
print("你输入的序号有误,请重新输入!!!")
else:
print(goods[int(str1)-1]['name']," ",goods[int(str1)-1]['price'])
break