Python基础 day3
1、为何要有字典?
一个key对应一个value,我只要知道key就能取出value。
2、字典的形式
dic = {‘name’:’dajiba’,’age’:18}
key的定义规则:
不可变
value的定义规则:
任意类型
3、字典的增删改查
增加:
dic = {'name':'dajiba','age':18} dic['sex']='man' print(dic) 打印结果: {'sex': 'man', 'age': 18, 'name': 'dajiaba'}
删除:
有一个万能的删除法
dic={'name':'dajiaba','age':18}del dic['name'] print(dic) 打印结果删除了name{'age': 18}
改
dic={'name':'dajiaba','age':18} dic['name']='jixuege' print(dic) 打印结果{'age': 18, 'name': 'jixuege'}
查
dic={'name':'dajiaba','age':18} #查询,如果没有回报错 print(dic['name']) #查询,如果没有不会报错 print(dic.get('name')) 打印结果:dajiaba dajiaba
要求:
- 打印省、市、县三级菜单
- 可返回上一级
- 可随时退出程序
永远的痛,下面就附上几个实现的方法:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Author: Leon xie
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'包子':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
new_menu=menu
menu_level=[]
while True:
for key in new_menu:
print(key)
choice = input("请输入你的选择>>")
if len(choice) == 0:continue
if choice == "b":
if len(menu_level) ==0:break
new_menu=menu_level[-1]
menu_level.pop()
if choice not in new_menu:continue
menu_level.append(new_menu)
new_menu=new_menu[choice]
集合
一、为何要有集合?
1、举个栗子
在没有集合的时候,我们表是一组名字是用列表。如下
Python_list=['dajiba','lhf','pangfeng'] linux_list=['xiaoming','laowang','alex','lhf']
both=[]
那么我要取2个列表相同的东西,就需要使用下面的for循环
for name in linux_list: if name in Python_list: both.append(name) print(name)
打印结果
lhf
会不会很麻烦?
2、使用集合来解决上面的痛点
创建一个数字集合
s = set([3,5,9,10]) 它的输出结果就是 s ={9, 10, 3, 5}是一样的。
t = set("Hello") 它的输出结果就是 t = {'e', 'H', 'l', 'o'}
集合是一个无序的,不重复的数据组合,它的主要作用如下:
* 去重,把一个列表变成集合,就自动去重了,如上所示
* 关系测试,测试两组数据之间的交集、差集、并集等关系。
常用操作:
a= t | s # 表示t 和 s的并集
b= t & s # 表示 t 和 s的交集
c= t - s # 差集(在t不在s中)
d = t ^ s #对称差集(项在t或s中,但不会同时出现在这二者中)
基本操作如下:
# 添加一项
t = set("Hello")
t.add('x')
print(t)
打印结果如下:
{'e', 'o', 'l', 'H', 'x'}
#在s中添加多项
s = set([3,5,9,10])
t = set("Hello")
s.update([10,12,13,13])
print(s)
打印结果如下:
{3, 5, 9, 10, 12, 13}
使用remove()可以删除一项:
t = set("Hello")
t.remove('H')
print(t)
打印结果如下:
{'o', 'l', 'e'}
长度
s = set([3,5,9,10])
print(len(s))
打印结果如下:
测试x是否是s的成员
x in s
测试x 是否不是s的成员
x not in s
测试是否s中的每一个元素都在t中
print(s.issubset(t))或
s <= t
打印结果
False
测试是否t中的每一个元素都在s中
s.issuperset(t)或者s>=t
并集
print(s|t)
打印结果
{'l', 3, 5, 'e', 'o', 9, 10}
或者是
s.union(t)
交集
print(s.intersection(t))
或者
s & t
s中有但是t中没有的元素
s.difference(t)
或者
s - t
转载于:https://www.cnblogs.com/Jo-king/p/6010218.html
Python基础 day3相关推荐
- python 基础 day3
python 操作文件的常用方式有如下 读文件:r 模式 实例演示1: f1 = open(file='D:\Python3.5-learn\模块2\character3_文件操作\staff_tab ...
- Python基础day03【字符串(定义、输入输出、常用方法)、列表(定义、基本使用、增删改查、嵌套)、元组】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day3 作业解析[5道 字符串题.3道 列表题.2道 元组题] 学习目 ...
- 第三章:Python基础の函数和文件操作实战
本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...
- python基础(一)完结
Day 01 python基础 一.计算机基础 1.快捷键: 快速复制:Ctrl+D 垂直拆分 水平 拆分 快速修改 查看 2.计算机的组成 硬件:运算器 控制器 存储器 输入设备 输出设备 软件: ...
- f是一个python内部变量类型,Python基础变量类型——List浅析
Python使用list 一.list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示 ...
- python 等号报错_Python学习----Python基础
Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...
- python基础——继承与派生、组合
python基础--继承与派生 1 什么是继承: 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类成为基类或超累,新建的类成为派生类或子类 1.1 继承分为:单 ...
- Python学习笔记1 Python基础
第1章 Python基础 1.1 Python概述及版本介绍 1.Python是一种面向对象的解释型计算机程序设计语言(解释型语言源代码->解释器逐行解释每一句源代码) 2.优点:高级语言.可移 ...
- python基础---元组、字典、函数、文件、异常
文章目录 python基础---元组.字典.函数.文件.异常 Tuple(元组) 常用操作 dict(字典) 函数 文件 异常 python基础-元组.字典.函数.文件.异常 Tuple(元组) tu ...
最新文章
- 将在2021年改变商业格局的10项技术
- window7自带的分区
- 区块链架构、跨链和演进
- 54 Django 模型层(1) 单表查询
- 在ADF实体PK属性中使用MySQL自动增量PK列
- linux6.5安装oracle,linux [CentOS 6.5]下安装oracle
- NAS、SAN和DAS的区别
- mysql for mac
- HoloLens 2开发:使用Gaze开发,视线小球不停向眼端移动
- easyUI 设置datagrid的行高 + 文字超宽换行
- openwrt编译基本教程
- 数据结构与算法经典图书推荐
- 网页版俄罗斯方块第1版
- HTML5超炫3D雷达扫描地图玩法
- 前端知识之angular组件库之NG-ZORRO-ANTD结构窥探(一)components
- 802.11标准及无线网运行模式
- OTA制作及升级过程
- appinventor java,(1) AppInventor高级组件之JavaReflector系列教程 概述
- Ubuntu/linux c开发(4)线程池
- 【三维目标检测】Part-A2(一)
热门文章
- 2010计算机上机考试试题,WORD2010上机操作练习题
- REAL-TIME RENDER 4th Chapter 23 Graphics Hardware
- 华为双屏手机计算机,华为双屏手机设计惊艳亮相 背面的屏幕是干嘛用的?
- 混凝土弹塑性损伤本构模型在Abaqus中vumat子程序的实现
- ubuntu权限不够(进入后身份并不是root而是自己的默认登录名的情况)
- MyBatis-Plus分页查询(快速上手运用)
- 当Scanner.nextInt()遇到了Scanner.nextLine()
- 华为电脑wrtw29安装Linux,华为MateBook13WRT-W29对比苹果 MacBook Air
- wordpress仅用代码轻松实现网站蜘蛛爬行记录
- 台达,AS228T,plc程序模板和触摸屏程序模板,目前6个总线伺服,采用CANOPEN,适用于运动轴控制,程序可以在自动的时候暂停进行手动控制