一、字典的定义

city_list = { 'beijin':"北京",'shanghai':"上海" }

print(city_list)

二、字典添加一个元素
city_list['wuhan'] = "武汉"

三、字典修改一个元素
city_list['beijin'] = "武汉"

四、字典删除
1、删除某个键值
city_list.pop("beijin")
print(city_list)
2、随机删除某个一个元素
city_list.popitem()

3、删除所有的元素
city_list.clear()
4、删除一个值
del city_list['beijin']
五、字典的查询
print(city_list['shanghai'])
print(city_list.get('shanghai'))

六、字典的循环遍历
1、方式一:
for key  in city_list :
print(key,city_list[key]) 2、方式二:
for key in city_list.keys() :
print(key, city_list[key]) 3、方式三、值遍历
for value in city_list.values() :
print(value) 4、方式四 字典遍历(数量较大时候转化需要时间,建议使用1、2、3)
for it in city_list.items() :
print(it) for key,value in city_list.items() :
print(key,value)
七、字典的其他的函数的使用:
1、fromkeys 初始化一个字典
test = dict.fromkeys('1,2,3',["aa","bb","cc"])
print (test) 2、update 函数合并两个字典,有重复部分更新字典二的值
test =  city_list.update(city_list2)
print(city_list) 3、setdefault 有值时候不改变,无值时候添加一个值
city_list2.setdefault('wuhan','武汉')
print(city_list2)
八、字典和列表的区别:
1、字典是无序的,数组是有序的。
2、字典是通过key进行查找,列表是通过键值查找
3、查询算法的复杂度不一样,list 算法复杂度为O(n),字典dict算法复杂度为O(1)
4、占用内存不一样,dict 占用内存是list1.5 九、多级字典使用
# Author : xiajinqi
city_list = {
'北京' : {
'昌平' : ["金山","百度"],
'朝阳' : ["oldboy"]
},
'深圳' : {
'南山区' : ['友金所','金蝶','腾讯','中兴'],
'罗湖区' : ['用友','海颐'],
'宝安区' : ['中国证券','天下第一']
},
'广州' : {
'天河区' : ['天河公园'],
'越秀区': ['越秀公园']
}
}
#多级字典的遍历
for i in city_list :
for j in city_list['北京'] :
print(j)


作业题目一:
手机通讯录实现增加联系人、删除联系人、查询联系人。
脚本:
# Author : xiajinqi

#需求定义一个通讯录实现增加删除查询联系人

phone_address_book = {'xiajinqi':'18125012733','wuwang':'18125012788'}

while 1 :
print(
'''
----欢迎登录手机通讯录首页-----
1、查询联系人手机号码
2、增加一个联系人或者修改一个联系人
3、删除一个联系人
4、显示当前所有联系人
'''
) user_choose = input("choose :")
if user_choose.isdigit() :
user_choose = int(user_choose)
else :
print("输入的不是一个数字,请重新选择 usage;1")
continue if user_choose > 4 or user_choose < 1 :
print("输入的值必须要在1和3之间")
continue if user_choose == 1 :
name = input("请输入要查找的名字: ")
# 通过键值查找联系人手机号码
if name in phone_address_book :
phone = phone_address_book.get(name)
print("名字:%s,手机号码:%s" %(name,phone))
else :
print("你输入的名字在通讯录不存在")
continue
elif user_choose == 2 :
name = input("请输入要修改或者添加人员的名字: ")
phone = input("请输入手机号码:")
phone_address_book [name] = phone
elif user_choose == 3 :
name = input("请输入要删除人员的名字: ")
phone_address_book.pop(name)
elif user_choose == 4 :
for key in phone_address_book.keys() :
print("名字:%s,手机号码:%s" %(key,phone_address_book[key]))
print("当前联系人总数 %s" % (len(phone_address_book)))
else :
print("输入错误,重新选择输入") 作业题目二:
 #!/usr/bin/python

 #三级菜单,实现
################################################
# Task Name: 三级菜单 #
# Description:打印省、市、县三级菜单 #
# 可返回上一级 #
# 可随时退出程序 #
# ----------------------------------------------#
# Author:xiajinqi # city_list = {
'guangzhou':{
'guangzhou':['越秀','天河'],
'shenzhen':['南山区','保安区','罗湖区']
},
'hubei' :{
'wuhan':['武昌区','洪山区','江岸区'],
'huanggang':['麻城','罗田']
}
} province = list(city_list.keys()) #
while 1 :
print(" 省 ".center(50,'*'))
for pro in province :
print(province.index(pro)+1,pro)
user_choose = input("一级菜单,请选择>>>")
if user_choose.isdigit() :
user_choose = int(user_choose)
if user_choose > 0 and user_choose <= len(province) :
pro_name = province[user_choose-1]
city = list(city_list[pro_name].keys())
while 1 :
print(" 市 ".center(50, '*'))
for ct in city :
print(city.index(ct)+1,ct)
city_choose = input("二级菜单,请选择>>>")
if city_choose.isdigit():
city_choose = int(city_choose)
if city_choose > 0 and city_choose <= len(city) :
city_name = city[city_choose -1]
town= city_list[pro_name][city_name]
while 1 :
print(" 区 ".center(50, '*'))
for tn in town:
print(town.index(tn) +1,tn)
town_choose=input("三级菜单,请选择>>>")
if town_choose == 'b' :
break
elif town_choose =='QUIT' :
exit()
else :
print("已经是最底层菜单")
else :
print("选择错误,请重新输入")
continue elif city_choose == 'b':
print("回退")
break
elif city_choose =='QUIT' :
exit()
else :
print("输入错误,请重新输入")
else :
print("输入错误,请重新输入")
elif user_choose == 'QUIT' :
exit()
else :
print("输入不合法")
continue




 





 

python新手之字典增删改查的更多相关文章

  1. python操作mysql数据库增删改查的dbutils实例

    python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...

  2. python 全栈开发,Day5(字典,增删改查,其他操作方法)

    一.字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.存储大量的数据,是关系型数据,查询数据快. 列表是从头遍历到尾字典使用二分查找 二分查找也称折半查找(Bi ...

  3. python学习(list增删改查、及常用方法)

    1.Python多条件判断: 多条件判断if: passelse: pass循环 while for i = 0 while i > 1: print('hello') else: print( ...

  4. Python之注册表增删改查(干货)

    在Windows平台下,对注册表的增删改查的需求比较多,微软提供了很多用于访问,修改注册表等的API,我们可以使用诸如bat,或者C++等各种方式去访问修改注册表.无所不能的python下如何完成这些 ...

  5. Python实现mysql数据库增删改查

    利用python操作mysql数据库用法简单,环境配置容易,本文将实现对库增.删.改.查的简易封装!   1. 环境配置 安装第三方包  ,导入模块 mysql.connector  pip inst ...

  6. DAY4(python)打印字符串以及增删改查

    用while循环打印字符串 #if i in s: # print ( i ) s='nanfjkhndaol' index = 0 while 1 : print (s[index]) index+ ...

  7. Python中列表、元组、字典增删改查基本区别

    1.定义: 列表:num = ["a","b"."c"] ##定义后可增删改查 元组:num = ("a"," ...

  8. python 基础 字典 增删改查

    content = {"name":"wd","pc":{"phone":111111,"age": ...

  9. Python对数据库的增删改查

    #!/usr/bin/env python   import MySQLdb   DATABASE_NAME = 'hero'   class HeroDB:     # init class and ...

随机推荐

  1. CVE-2014-0322漏洞成因与利用分析

    CVE-2014-0322漏洞成因与利用分析 1. 简介 此漏洞是UAF(Use After Free)类漏洞,即引用了已经释放的内存,对指定内存处的值进行了加1.其特点在于攻击者结合flash实现了 ...

  2. 【深入理解JAVA虚拟机】第二部分.内存自动管理机制.2.HotSpot虚拟机对象探秘

    对象的创建过程 1.加载类 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载. 解析和初始化过. 如果没有,那必须 ...

  3. [零基础学JAVA]Java SE面向对象部分.面向对象基础(02)

    String类 JAVA:public class StringTest{ public static void main(String args[]){ //尽量避免使用new,这样会产生内存垃圾 ...

  4. 使用combineReducers注意事项

    一.从‘redux’包中引入combineReducers方法: import { combineReducers } from 'redux'; 二.针对state的不同属性写不同的reducer, ...

  5. php各种设计模式简单实践思考

    前言 我一直觉得什么框架,版本,甚至语言对于一个coder来说真的不算什么,掌握一个特别高大上的一个框架或者是一个新的,少众的语言真的不算什么,因为你可以,我要花时间也可以,大家都是这样的.所以基本的 ...

  6. Entity Framework——读写分离

    1 实现 CustomDbContext扩展了DbContext,其构造函数带有形式参nameOrConnectionString,可以在使用CustomDbContext时指定数据库连接字符串. D ...

  7. mybatis的resultMap自定义结果映射规则

    dao接口 User myGetUserById(Integer id); sql xml自定义封装规则 <!--自定义某个javabean的封装规则 type:自定义规则的java类型 id: ...

  8. 利用来JS控制页面控件显示和隐藏有两种方法

    利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位. 方法一:  1 2 document.getEle ...

  9. The Android ION memory allocator

    http://lwn.net/Articles/480055/ Back in December 2011, LWN reviewed the list of Android kernel patch ...

  10. 课时25.a标签基本使用(掌握)

    什么是a标签? 我们打开百度或者淘宝网页,观察任何一个超链接都会发现它有如下特质: 有下划线 移上去有小手指 可以点击 a标签的作用:就是用于控制页面与页面之间跳转的 a标签的格式:<a hre ...