day05作业---字典
# 字典找位置 用键, 列表、元组找位置 用索引
'''
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" 答:不能被修改 元组(1,2,3)
'''
#1 元组
print('元组的特性是不可修改的数据类型,用小括号表示,可以存储多种类型')
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
print(type(tu))
# tu[0] = '1' #'tuple' object does not support item assignment
# print(tu)
tu[1][2]['k2'] = 'Seven'
print(tu[1][2]['k2'])
print(type(tu[1][2]['k2']))
print(tu) #都是键 的位置 可以改为 变量
# tu[1][2]['k3'] = (11,22,33,'Seven') # 添加
# tu[1][2].setdefault('k3','')
print(tu[1][2]['k3'])
print(tu)
# tu[1][2][]
'''
2.字典dic,dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
1. 请循环输出所有的key
2. 请循环输出所有的value
c. 请循环输出所有的key和value
d. 请在字典中添加⼀个键值对,"k4": "v4",输出添加后的字典
e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
f. 请在k3对应的值中追加⼀个元素 44,输出修改后的字典
g. 请在k3对应的值的第 1 个位置插⼊个元素 18,输出修改后的字典'''
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
for key in dic.keys():
print(key)
for value in dic.values():
print(value)
for key,value in dic.items():
print(key,": ",value)
dic.setdefault('k4','v4')
print(dic)
dic['k1'] = 'alex'
print(dic)
# 对列表进行操作
dic['k3'].append(44)
print(dic)
dic['k3'].insert(0,18)
print(dic)
'''
3. a,给此 ["很多免费的,世界最⼤的","质量⼀般"]列表第⼆个位置插⼊⼀个 元素:'量很
⼤'。
b,将此 ["质量很⾼,真的很⾼","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过"
删除。
c,将此["质量怎样不清楚,个⼈已经不喜欢⽇韩范了","verygood"]列表的
"verygood"全部 变成⼤写。
d,给 '⼤陆' 对应的字典添加⼀个键值对 '1048' :['⼀天就封了']
e,"oldboy.com": ["多是⾃拍,⾼质量图⽚很多","资源不多,更新慢"]
f,给此["全部免费,真好,好⼈⼀⽣平安","服务器在国外,慢"]列表的第⼀个元素,加上
⼀句话:'可以爬下来''' 答:
av_catalog = {
'欧美':{}
'大陆':{}
'日韩':{}
}
f.字符串 拼接 位置 = 位置(其实是一个数据类型) + ‘可以爬下来’
av_catalog = {
"欧美":{
"www.太⽩.com": ["很多免费的,世界最⼤的","质量⼀般"],
"www.alex.com": ["很多免费的,也很⼤","质量⽐yourporn⾼点"],
"oldboy.com": ["多是⾃拍,⾼质量图⽚很多","资源不多,更新慢"],
"hao222.com":["质量很⾼,真的很⾼","全部收费,屌丝请绕过"]
},
"⽇韩":{
"tokyo-hot":["质量怎样不清楚,个⼈已经不喜欢⽇韩范了","verygood"]
},
"⼤陆":{
"":["全部免费,真好,好⼈⼀⽣平安","服务器在国外,慢"]
}
}
av_catalog['欧美']["www.太⽩.com"].insert(1,'量很⼤')
print(av_catalog)
# av_catalog['欧美'].popitem("hao222.com") # 方法删除的是键值对
av_catalog['欧美']["hao222.com"].remove('全部收费,屌丝请绕过') # 根据元素的只能是 remove
# del av_catalog['欧美']["hao222.com"][0] #也可以根据索引 pop 和 del
av_catalog['欧美']["hao222.com"].pop(0) #也可以根据索引 pop 和 del
# 格式一点都不一样。
print(av_catalog)
print(av_catalog['⽇韩']["tokyo-hot"][1].title()) # 该列表 用 序列【1】 而不是 元素
# print(av_catalog)
av_catalog['⼤陆'].setdefault('',['⼀天就封了'])
print(av_catalog)
av_catalog['⼤陆'][''][0]='全部免费,真好,好⼈⼀⽣平安,可以爬下来'
print(av_catalog)
'''
4.有字符串"k: 1|k1 :2|k2:3 |k3 :4" 处理成字典 {'k':1,'k1':2....} ( '''(升级题 面试题)
分别赋值:
kay , value = item ----------> k1 1
s = "k: 1|k1 :2|k2:3 |k3 :4"
ss = s.split('|') # ['k: 1', 'k1 :2', 'k2:3 ', 'k3 :4']
# ss = s.split(':')
print(ss)
dic={}
for flag in ss:
s1 = flag.split(':')
# print(s1)
dic.setdefault(s1[0]) # 添加键
dic[s1[0]] =s1[1] #添加值
# print(flag)
print(dic)
#{'k': ' 1', 'k1 ': '2', 'k2': '3 ', 'k3 ': '4'}
'''
5.元素分类
有如下值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]
dic = {'k1':[],'k2':[]}
for l in li:
# print(l)
# print(type(l))
if l > 66:
dic['k1'].append(l)
if l < 66:
dic['k2'].append(l)
print(dic)
'''
6.输出商品列表,⽤户输⼊序号,显示⽤户选中的商品
商品列表:
goods = [{"name": "电脑", "price": 1999},
{"name": "⿏标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美⼥", "price": 998}, ]
要求:
1:⻚⾯显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 ⿏标 10
…
2:⽤户输⼊选择的商品序号,然后打印商品名称及商品价格
3:如果⽤户输⼊的商品序号有误,则提示输⼊有误,并重新输⼊。 # 输入有英文 别的 没做处理
4:⽤户输⼊Q或者q,退出程序。'''
goods = [{"name": "电脑", "price": 1999},
{"name": "⿏标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美⼥", "price": 998}, ]
i = 0
for i in range(len(goods)):
i+=1
print(i,goods[i-1]['name'],goods[i-1]['price'])
while True:
number = input('请输入商品序号:(输入q/Q退出)').strip()
if number == 'q':
quit()
else:
number = int(number)
# print(i)
if number == 1:
print(goods[0]['name'],goods[0]['price'])
elif number == 2:
print(goods[1]['name'],goods[1]['price'])
elif number == 3:
print(goods[2]['name'],goods[2]['price'])
elif number == 4:
print(goods[3]['name'],goods[3]['price'])
else:
print('输入不符合规则!!!!!!')
流畅的代码(老师讲)
goods = [{"name": "电脑", "price": 1999},
{"name": "⿏标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美⼥", "price": 998}, ]
i = 0
for i in range(len(goods)):
i+=1
print(i,goods[i-1]['name'],goods[i-1]['price'])
# while True:
while 1: # while 1 比while true 执行快
number = input('请输入商品序号:(输入q/Q退出)').strip()
if number.isdigit(): #考虑英文和其它字符
number = int(number)
if 0 < number <=len(goods): # 厉害了 不是指定值 而是根据程序
print(goods[number-1]['name'], goods[number-1]['price'])
else:
print('你输入的超出范围,请重新输入')
elif number.lower() == 'q': #怎么没考虑 大写 没加 lower
quit()
else:
print('输入不符合规则!!!!!!')
day05作业---字典的更多相关文章
- day05 python字典
day05 python 一.字典 1.dict 用{}表示, 存放的是: key:value (开发的都知道的是键值对数据,这样说) key: 关键字不能重复, 不 ...
- day06作业---字典循环
'''1.1使⽤循环打印以下效果: ***************''' for a in range(1,6): print(a*'*') '''1.2: ***** **** *** ** * ' ...
- python27期day05:字典、字典嵌套、作业题。
1.字典是python中的数据类型之一.唯一一种大括号{}键值对的数据. 2.存储大量的数据.将数据和数据之间进行关联. 3.通过键可以准确的找到值 4.哈希:可变数据类型就不可哈希 不可变数据类 ...
- Python:Day05 作业
购物车: product_list = [['iphone6s',5800],['mac book',9800],['coffee',32],['book',80],['bike',1500]] sh ...
- python day05 作业答案
1. b.不可以 c.tu=("alex",[11,22,{"k1":"v1","k2":["age" ...
- python day05作业
- day05作业
一.1.switch 2.字符串 3.表达式1 4.break 5.continue 二.1.B 2.A 3.BD 4.D 5.B 6.B 7.A 8.D 9.D 10.B 三.1.√ 2.√ 3.× ...
- day05 作业
猜年龄 ''' 输入姑娘的年龄后,进行以下判断: 1. 如果姑娘小于18岁,打印"不接受未成年" 2. 如果姑娘大于18岁小于25岁,打印"心动表白" 3. 如 ...
- python 作业
Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...
随机推荐
- 十 suprocess模块
1 import subprocess 2 3 ''' 4 sh-3.2# ls /Users/egon/Desktop |grep txt$ 5 mysql.txt 6 tt.txt 7 事物.tx ...
- VS2013 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array<int>::operator [](int)”只是在返回类型上不同
1,VS2013 错误 1 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array ...
- vm 克隆一台新机器启动网卡报错:device eth0 does not seem to be present, delaying initialization
解决方案: 1. vi /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-eth0的配置文件里保存了以前的MAC地址,就把这一行删除掉在重启网卡 2. ...
- 1、list 的一些相关操作 2、增删改查 3、tuple 的操作 4、range
1. list(增删改查) 列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开 列表和字符串一样.也有索引和切片 # lst = [1, "周杰伦" ...
- int 和 Integer 的区别
1.两个New生成的Integer 永远不相等,因为他们的内存地址不相等 2.如果一个是New生成的Integer 另一个是通过赋值生成的话,如果值相等那么他们相等,因为这时Integer会通过自动拆 ...
- 【转】iOS 自动化性能采集
前言 对于iOS总体生态是比较封闭的,相比Android没有像adb这种可以查看内存.cpu的命令.在日常做性能测试,需要借助xcode中instruments查看内存.cpu等数据. 但是借助i ...
- glove
glove - 必应词典 美[ɡlʌv]英[ɡlʌv] v.给戴手套:作…的手套 n.(分手指的)手套 网络分指手套:拳套:棒球之爱 变形复数:gloves:现在分词:gloving:过去分词:glo ...
- 浅谈CSRF
CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click ...
- MYSQL 优化常用方法总结
1, 选取最合适的字段属性以及长度 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快. 比如:定义邮政编码 char(6) 最合适,如果char(2 ...
- Service Broker 概述
ServiceBroker(简称SSB)是基于数据库引擎提供的一个强大的异步编程模型,通过ServiceBroker,开发人员无需编写复杂的通信和消息程序,即可在数据库实例之间完成高效可靠的异步通信. ...