|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 高渐飞 于 2018-7-16 15:19 编辑
- <font size="3">#知识点总结
- #(1)字典由键(key)和对应值(value)成对组成,字典是Python唯一的一个映射类型;
- #(2)映射:指两个元素的集之间元素相互“对应”的关系,类似C中的结构体
- #(3)格式一般为 value[key.index("xxxx")]
- #(4)元组小括号(),列表中括号[],字典大括号{}
- #(5)字典是二维的,列表是一维的;序列是顺序索引,字典是精确索引
- #(6)新建dict字典的几种方法:
- """ a.直接用中括号{}:
- i. d = {A:a,B:b}
- ii. d= {}
- b.使用dict
- i. d = dict()
- ii. d = dict(a = 'a',b = 'b') #前面a输出时,引号会自己打
- iii. d = dict( zip([list1],[list2]))
- iv. d = dict({A:a,B:b})
- v. d = dict(( (cuple1),(cuple2) )) #元组字典
- vi. dict里面只有一个变量 """
- #(7)字典dict常用方法:
- """ a. d.fromkeys((1,2,3),'hello') 创建三个key1,2,3,其value都是hello.默认value为none
- b. d.get(key,[value]) 查找,如果key在d里,返回d[key]即value;否则返回None,若传入value,此时返回value
- c. d.setdefault(key,[value]) 若有key,返回其value;否则新建一个key,其值默认设置为None,有value则设置value
- d. d.copy() 内存新建一个d,和直接赋值不一样,一者变另一者并不变
- e. d.update(d1) 按照d2更新d,有则改变;没有则不变
- f. d.pop(key) 把key里的值弹出 d.popitem(),随机弹出一个item值,实际上弹出的确实为最后一个值.
- g. d[key] = value 给key赋值,如果没有key,则新建一个key再赋值
- h. d.keys() d.values(),d.items(),用于遍历d的键,值,项目.
- i. d.clear() 清空字典d,相当于d={}; del d[key],清除某个项 """
- #练习部分
- #1.商标与标语相对应的列表编写
- brand = ['李宁','TESLA']
- slogan = ['一切皆有可能', 'Dream and Future']
- print('李宁的口号是:',slogan[brand.index('李宁')])
- #2.字典的创建及元素的访问
- dict1 = {'李宁':'一切皆有可能', 'TESLA':'Dream and Future'} #字典根据键值key来索引元素
- print('李宁的口号是:', dict1['李宁']) #字典的标志为大括号{}和key与value之间的冒号
-
- dict2 = {1:'one', 2:'two', 3:'three'} #创建新的字典
- print(dict2[2]) #以标号索引
- dict3 = {} #创建空的字典
- print(dict3)
- #3.创建元组字典
- dict4 = dict( (('F',70), ('i',105), ('s',115), ('h',104), ('C',67)) ) #元组( , )
- print(dict4)
- #4.用关键字参数创建字典
- dict5 = dict(TESLA='Dream and Future',李宁='一切皆有可能') #大括号搭配冒号,小括号搭配
- print(dict5)
- #5.改变字典中的对应值
- dict5['TESLA'] = 'Where there is a dream, there is a future' #通过key索引
- print(dict5)
- #6. 增加字典元素
- dict5['耐克'] = 'Just do it'
- print(dict5)
- #7.综合练习
- print('''
- |--- 欢迎进入通讯录程序---|
- |--- 1:查询联系人资料 ---|
- |--- 2.插入新联系人 ---|
- |--- 3.删除已有联系人 ---|
- |--- 4.退出通讯录程序 ---|
- ''')
- book = {} #建立空字典
- while True:
- code = int(input('请输入相关的指令代码:'))
-
- if code == 4:
- print('|--- 感谢使用通讯录程序 ---|')
- break
-
- name = input('请输入联系人姓名:')
- if code ==2: #插入新联系人
- flag = 0
- for each in book: #查找用户
- if each == name:
- flag = 1 #用户在通讯录中,key为each
-
- if flag == 1:
- print('您输入的用户名在通讯录中已存在 --> ',each,':',book[each])
- choose = input('是否修改用户资料(YES/NO):')
- if choose == 'YES' or ' yes':
- book[each] = input('请输入用户新联系电话:')
- else:
- print('好的')
- else:
- phone = input('请输入联系人电话:') #插入新联系人的联系方式
- book[name] = phone
-
- if code ==1: #查询联系人资料
- print(name,' : ',book[name])
- if code == 3: #删除已有联系人
- flag = 0
- for each in book:
- if each == name:
- flag = 1
-
- if flag == 0:
- print('要删除的对象不存在!')
- else:
- del book[name] #类似列表,可以删除元素
- print(name,'已删除!')
-
- print('\n')
- #8.综合练习2
- def newuser(ssid):
- while ssid in user:
- ssid = input('此用户名已经被使用,请重新输入:')
- user[ssid] = input('请输入密码:') #直接修改对应值
- print('注册成功,赶紧试试登录吧0.0')
- def login(ssid):
- while ssid not in user:
- ssid = input('您输入的用户名不存在,请重新输入:')
- psw = input('请输入密码:')
- while psw != user[ssid]: #根据键值key来索引
- psw = input('密码不正确,请重新输入:')
- print('登陆成功,欢迎进入XXXX系统')
- user = dict() #创建新字典
- while True:
- print('''
- |--- 新建用户:N/n---|
- |--- 登录账户:E/e---|
- |--- 退出程序:Q/q---|
- ''')
-
- code = input('请输入指令代码:')
-
- if code == 'n' or 'N':
- ssid = input('新建用户中,请输入用户名:')
- newuser(ssid)
- elif code == 'e' or 'E':
- ssid = input('登陆账户中,请输入用户名:')
- login(ssid)
- elif code == 'q' or 'Q':
- print("感谢您的使用,欢迎再次登陆~")
- break
-
- </font>
复制代码 |
|