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

要求:

  1. 打印省、市、县三级菜单
  2. 可返回上一级
  3. 可随时退出程序

永远的痛,下面就附上几个实现的方法:

#!/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

时间: 2024-07-29 00:55:41

Python基础 day3的相关文章

Python基础day-3

变量的组成: 变量由变量名,赋值符号,变量值三部分组成,变量还分类型. 变量名→n = 1←变量值    ↑ 赋值符号 比较方法: 身份比较:比较的是变量值的id >>> x = 300 >>> id(x) 46137936 >>> y = 300 >>> id(y) 46137984 >>> x is y False >>> 值比较:比较两个变量值 >>> x = 300 >

python基础day3

一.set 集合 特点:无序.不重复.可嵌套. 1.创建集合的三种方式: s = set() s1 = set{11,22,} s2 = set([11,22,33]) 2.操作集合 注意: 创建空集必须用 set(),如用{}是创建字典. s = set("qweiwt") #把str中的字符拆解开,形成set.特别注意观察有两个w,但集合是不能重复的 print(s) {'t', 'i', 'e', 'q', 'w'} s.add("f") #添加set元素,重

python 基础(一)

一.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 1.1.Python应用领域: l 云计算: 云计算最火的语言, 典型应用OpenStack l WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣..., 典型WEB框架有Django l 科学运算.人工智能: 典型库N

linux+jmeter+python基础+抓包拦截

LINUX 一 配置jdk 环境 *需要获取root权限,或者切换为root用户 1.windows下载好,去 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 官方网站下载jdk(linux相应版本) 2.在usr目录下创建java路径文件夹 [root bin]cd /usr mkdir java 3.将jdk-8u60-linux-x64.tar.gz放到刚才创建的文件夹下

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称

Python基础入门 (一)

一.关于版本的选择 Should i use Python 2 or Python 3 for my development activity?转载自Python官网 Short version: Python 2.x is legacy, Python 3.x is the present and future of the language Python 3.0 was released in 2008. The final 2.x version 2.7 release came out

Python 基础 - Day 4 Learning Note - Generator 生成器

列表生成器/列表解析 list comprehension 简单灵活地创建列表,通常和lambda(), map(), filter() 一起使用 通过列表生成式, 直接创建列表.但是,收到内容限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问几个元素,那其他的就白占空间.列表生成器能够一边循环一边计算,大大节省大量的空间.是生成器的一种. 只有调用,才能生成. 不支持切片操作,只能通过__next()___一个个取数字. 基本语法

python基础教程(第二版)

开始学习python,根据Python基础教程,把里面相关的基础章节写成对应的.py文件 下面是github上的链接 python基础第1章基础 python基础第2章序列和元组 python基础第3章使用字符串 python基础第4章字典 python基础第5章循环 python基础第6章函数和魔法参数 python基础第7章类 python基础第8章异常 python基础第9章魔法方法.属性和迭代器 python基础第11章文件 python基础第12章GUI(wxPython) pytho

python基础周作业

python基础周作业 1.执行python脚本的两种方法 脚本前面直接指定解释器 在脚本开始前声明解释器 2.简述位,字节的关系 每一个字节占用八个比特位 3, 简述ascii.unicode.utf- ‐8.gbk的关系 utf--‐8 <-- unicode <-- gbk <-- ascii 按此方向兼容 4..请写出"李杰"分别用utf- ‐8和gbk编码所占的位数 "李杰" 占用utf -8 占6字节 , gbk 占用4字节 5.pyt