1. python中字典的使用方法怎么样的
字典理解如下
另一个非常有用的 Python 内建数据类型是 字典 (参见 Mapping Types — dict )。字典在某些语言中可能称为 联合内存 ( associative memories )或 联合数组 ( associative arrays )。序列是以连续的整数为索引,与此不同的是,字典以 关键字 为索引,关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串和数字,它可以作为关键字,如果它直接或间接的包含了可变对象,就不能当作关键字。不能用列表做关键字,因为列表可以用索引、切割或者 append() 和 extend() 等方法改变。
理解字典的最佳方式是把它看作无序的键: 值对 (key:value 对)集合,键必须是互不相同的(在同一个字典之内)。一对大括号创建一个空的字典: {} 。初始化列表时,在大括号内放置一组逗号分隔的键:值对,这也是字典输出的方式。
字典的主要操作是依据键来存储和析取值。也可以用 del 来删除键:值对(key:value)。如果你用一个已经存在的关键字存储值,以前为该关键字分配的值就会被遗忘。试图从一个不存在的键中取值会导致错误。
对一个字典执行 list(d.keys()) 将返回一个字典中所有关键字组成的无序列表(如果你想要排序,只需使用 sorted(d.keys()) )。[2] 使用 in 关键字(指Python语法)可以检查字典中是否存在某个关键字(指字典)。
2. python字典的编写问题
#如果是其他数据需要格式化成list并保证数据的一致性(长度,数据类型...)
deff1():
a=['a','b','c','a','c','a']
b=[1,2,3,4,5,6]
d={}
foriinrange(len(a)):
#需要增加对键值的类型的检测
#如果不存在键,则返回None
ifd.get(a[i]):
d[a[i]].append(b[i])
else:
d[a[i]]=[b[i]]
print(d)
if__name__=='__main__':
f1()
#结果
'''
{'b':[2],'c':[3,5],'a':[1,4,6]}
'''
3. 求助python大神,编写程序,实现以下功能:(1)创建空字典
# 创建 dic_student 字典
dic_student = dict()
# 依次输入姓名和年龄,存入dic_student字典,共 5 组数据
for i in range(5):
name = input().strip()
age = int(input().strip())
dic_student.update({name: age})
# 按行输出,中间用 \t 隔开
for key, value in dic_student.items():
print(key, value, sep='\t')
4. 请问下各位高手:如何用python写一个通讯录,实现如下功能:插入,更新,删除,保存,在此非常感谢
#用来存储记录
card_infors=[]
defprint_menu():
"""完成打印功能菜单"""
print("="*50)
print("通讯录V0.01")
print("1.添加一个新的记录")
print("2.删除一个记录")
print("3.修改一个记录")
print("4.查询一个记录")
print("5.显示所有的记录")
print("6.保存信息")
print("7.退出系统")
print("="*50)
defadd_new_card_infor():
"""完成添加一个新的记录"""
new_name=input("请输入新的名字:")
new_qq=input("请输入新的QQ:")
new_weixin=input("请输入新的微信:")
new_addr=input("请输入新的住址:")
#定义一个新的字典,用来存储一个新的记录
new_infor={}
new_infor['name']=new_name
new_infor['qq']=new_qq
new_infor['weixin']=new_weixin
new_infor['addr']=new_addr
#将一个字典,添加到列表中
globalcard_infors
card_infors.append(new_infor)
deffind_card_infor():
"""用来查询一个记录"""
globalcard_infors
find_name=input("请输入要查找的姓名:")
find_flag=0#默认表示没有找到
fortempincard_infors:
iffind_name==temp["name"]:
print("%s %s %s %s"%(temp['name'],temp['qq'],temp['weixin'],temp['addr']))
find_flag=1#表示找到了
break
#判断是否找到了
iffind_flag==0:
print("查无此人....")
defshow_all_infor():
"""显示所有的记录信息"""
globalcard_infors
print("姓名 QQ 微信 住址")
fortempincard_infors:
print("%s %s %s %s"%(temp['name'],temp['qq'],temp['weixin'],temp['addr']))
defsave_2_file():
"""把已经添加的信息保存到文件中"""
f=open("backup.data","w")
f.write(str(card_infors))
f.close()
defload_infor():
globalcard_infors
try:
f=open("backup.data")
card_infors=eval(f.read())
f.close()
exceptException:
pass
defmain():
"""完成对整个程序的控制"""
#恢复(加载)之前的数据到程序中
load_infor()
#1.打印功能提示
print_menu()
whileTrue:
#2.获取用户的输入
num=int(input("请输入操作序号:"))
#3.根据用户的数据执行相应的功能
ifnum==1:
add_new_card_infor()
elifnum==2:
pass
elifnum==3:
pass
elifnum==4:
find_card_infor()
elifnum==5:
show_all_infor()
elifnum==6:
save_2_file()
elifnum==7:
break
else:
print("输入有误,请重新输入")
print("")
if__name__=="__main__":
#调用主函数
main()
5. python 编写程序,实现以下功能:(1)创建空字典dic_student。(2)由用户依次
有偿服务可以帮实现。。
6. 用python实现简单通讯录 大学生水平即可 越简单越好 其中较复杂的地方注释一下 谢谢~
自己实现一个排序的dict,python文档上好像都有一个例子,
pcike模块保存到文件
7. python作业:让用户输入键和值生成字典,然后通过值查找对应的键
#以输入3个值和键为例
dic={}
foriinrange(0,3):
key=input("输入建:")
val=input("输入值:")
ifkeynotindic.keys():
dic[key]=val
print("输入完成。")
key=input("输入要查找的键:")
ifkeyindic.keys():
print(key,'的值为:',dic[key])
else:
print('字典中没有这个键')
效果如下:
8. 如果要用python写一本电话字典该怎么写
#
#
#pipinstalldjango
fromdjango.dbimportmodels
classContact(models.Model):
name=models.CharField(max_length=20)
phone=models.CharField(max_length=20)
address=models.CharField(max_length=255)
9. 在python 中,在键盘上输入数据,建立一个字典的程序怎么写,并且读取键和值
分别输入key和value,key输入回车结束
dic={}
whileTrue:
key=input('Inputkey:')
ifkey=='':
break
value=input('Inputvalue:')
dic[key]=value
forkey,valueindic.items():
print(key+':'+value)
10. python:编写一个通讯录管理程序,实现通讯录文件建立,读取,添加记录,查找记录的功能。
可以将数据存储在列表里
然后再将列表保存到文件里
通过对列表的操作动态更改存储在文件里的内容
如果有文件的话程序启动时从文件里加载数据保存到列表即可
如果代码不想自己写的话
我可以有偿代劳