python day05作业
day05作业
1.请将列表中的每个元素通过 "_" 链接起来
users = ['李少奇','李启航',666,'渣渣辉']
users = ['李少奇', '李启航', 666, '渣渣辉']
users[2] = "666"
msg = "_".join(users)
print(msg)
# 方法二
s = ''
for i in users:
s += '_' + str(i)
print(s[1:])
# 方法三
s = ''
for index in range(len(users)):
if index == 0:
s += users[index]
else:
s += '_' + str(users[index])
print(s)
2.请将元组 v1 = (11,22,33) 中的所有元素追加到列表 v2 = [44,55,66] 中
v1 = (11,22,33)
v2 = [44,55,66]
v2.extend(list(v1))
print(v2)
3.请将元组 v1 = (11,22,33,44,55,66,77,88,99) 中的所有偶数索引位置的元素 追加到列表 v2 = [44,55,66] 中
v1 = (11,22,33,44,55,66,77,88,99)
v2 = [44,55,66]
for i in range(0, len(v1), 2):
v2.append(v1[i])
print(v2)
# 方法二,对元组进行切片
v1 = (11,22,33,44,55,66,77,88,99)
v2 = [44,55,66]
v2.extend(v1[::2])
print(v2)
4.将字典的键和值分别追加到 key_list 和 value_list 两个列表中,如:
key_list = []
value_list = []
info =
key_list = []
value_list = []
info = {'k1':'v1','k2':'v2','k3':'v3'}
for key, value in info.items():
key_list.append(key)
value_list.append(value)
print(key_list)
print(value_list)
# 法二 直接分别将键和值转化成列表,再追加
key_list = []
value_list = []
info = {'k1':'v1','k2':'v2','k3':'v3'}
key_list.extend(info.keys())
value_list.extend(info.values())
print(key_list)
print(value_list)
5.字典dic =
-
请循环输出所有的key
-
for key in dic.keys(): print(key) -
请循环输出所有的value
-
for value in dic.values(): print(value) -
请循环输出所有的key和value
-
for key, value in dic.items(): print(key, value) -
请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
-
dic['k4'] = 'v4' print(dic) -
请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
-
dic['k1'] = 'alex' print(dic) -
请在k3对应的值中追加一个元素 44,输出修改后的字典
-
dic['k3'].append(44) print(dic) -
请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典
-
dic.get('k3').insert(0, 18) print(dic)
6.有以下字典,请尝试下列操作
av_catalog = {
"欧美":{
"www.太白.com": ["很多免费的,世界最大的","质量一般"],
"www.alex.com": ["很多免费的,也很大","质量挺好"],
"oldboy.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"hao222.com":["质量很高,真的很高","全部收费,屌丝请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]
},
"大陆":{
"1024":["全部免费,真好,好人一生平安", "服务器在国外,慢"]
}
}
-
给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个 元素:'量很大'。
-
av_catalog['欧美']['www.太白.com'].insert(1, '量很大') print(av_catalog) -
将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。
-
av_catalog['欧美']['hao222.com'].pop() print(av_catalog) -
将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
-
av_catalog.get('日韩').get('tokyo-hot')[1] = av_catalog.get('日韩').get('tokyo-hot')[1].upper() print(av_catalog) -
给 '大陆' 对应的字典添加一个键值对 '1048' :['一天就封了']
-
av_catalog.get('大陆')['1048'] = '一天就封了' print(av_catalog) -
删除这个键值对:"oldboy.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]
-
av_catalog.get('欧美').pop('oldboy.com') print(av_catalog) -
给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来
-
av_catalog['大陆'].get('1024')[0] += ',可以爬下来' print(av_catalog)
7.请循环打印k2对应的值中的每个元素。
info = {
'k1':'v1',
'k2':[('alex'),('wupeiqi'),('oldboy')],
}
info = {
'k1' :'v1',
'k2' :[('alex') ,('wupeiqi') ,('oldboy')],
}
for i in info.get('k2'):
print(i)
8.有字符串"k: 1|k1:2|k2:3 |k3 :4" 处理成字典
str = "k: 1|k1:2|k2:3 |k3 :4"
lis = str.split('|')
dic = dict()
for i in lis:
lis2 = i.split(':')
dic[lis2[0].strip()] = int(lis2[1])
print(dic)
# 答案更加简洁,循环输出列表后直接拆包(输出列表步骤隐藏)
str = "k: 1|k1:2|k2:3 |k3 :4"
lis = str.split('|')
dic2 = {}
for i in lis:
key, value = i.split(':') # (列表)直接拆包
dic2[key.strip()] = int(value)
print(dic2)
9.写代码
有如下值 li= [11,22,33,44,55,66,77,88,99,90] ,将所有大于 66 的值保存至字典的第一个key对应的列表中,将小于 66 的值保存至第二个key对应的列表中。
result =
li= [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
result = {'k1': [], 'k2': []}
for i in li:
if i > 66:
result.get('k1').append(i)
elif i < 66:
result.get('k2').append(i)
print(result)
10.输出商品列表,用户输入序号,显示用户选中的商品
商品列表:
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}
]
要求:
-
页面显示 序号 + 商品名称 + 商品价格,如:
-
1 电脑 1999
-
2 鼠标 10
-
...
-
用户输入选择的商品序号,然后打印商品名称及商品价格
-
如果用户输入的商品序号有误,则提示输入有误,并重新输入。
-
用户输入Q或者q,退出程序。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}
]
msg = ""
count = 0
while count <= len(goods)-1:
dic = goods[count]
name = dic.get('name')
price = str(dic.get('price'))
msg += "\n{0} {1} {2}".format(str(count+1), name, price)
count += 1
print(msg)
while True:
number = input("请输入商品序号(输入q或Q退出):")
if number.isdecimal():
num = int(number) - 1
if num in range(len(goods)):
print("商品{}的价格为{}".format(goods[num].get('name'), str(goods[num].get('price'))))
else:
print("序号输入有误,请重新输入")
elif number.lower() == 'q':
break
else:
print("序号输入有误,请重新输入")
-
第一小问还有另解
-
# enumerate l1 = ['a', 'b', 'c'] for i in enumerate(l1, start=100): print(i) # 答案 for index in range(len(goods)): print(index+1, goods[index]['name'], goods[index]['price']) # 或者 for num, dic in enumerate(goods): print('{}\t{}\t{}'.format(num+1, dic['name'], dic['price']))
11.看代码写结果
v = {}
for index in range(10):
v['users'] = index
print(v)
结果:{'users': 9}
浙公网安备 33010602011771号