百星不如一越

导航

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}

posted on 2020-06-29 18:04  百星不如一越  阅读(56)  评论(0)    收藏  举报