python学习 day5 (3月6日)
字典
映射,{}键值对,key 唯一的 ,可哈希,容器型数据类型
可变的(不可哈希): 字典 列表 集合 都不可做键
不可变的(可哈希): 数字 字符串 bool 元组 frozeset() 可以做键
#__author : 'liuyang'
#date : 2019/3/6 0006
dic= {
'name':'alex',
'age':18,
'name':'python'
}
print(dic)
# 数据关联性
dic = {
'name_list':['博哥','菊哥','b哥'],
'barry':{
'name':'太白金星',
'age':18,
'hobby':'wife',
}
}
print(dic)
增删改查
一.增
dic[key] = '****' 有则改值 无则添加
dic.setdefault('name','liusi') ---(‘键’,‘值’) 有则不变 无则添加
# 增
dic= {
'name':'alex',
'age':18,
'name':'python'
}
print(dic)
# 键值对 是唯一的,默认第一个吗 第二个!
dic['name'] = 'liuer'
print(dic)
# 有则改值 无则添加
dic['nama'] = 'liusan'
print(dic)
# 有则不变 无则添加
dic.setdefault('name','liusi')
print(dic)
dic.setdefault('nam','liuwu')
print(dic)
dic = {1:2 , 3:6} # 若7 = None
print(dic.setdefault(1))#2 #第一步先根据 键 查值
# 第二部 有则不变 无则添加
print(dic.setdefault(1,5)) # 返回 5
二.删:
pop() 删除键值对 (返回值)
popitem 返回值是元组,元组里是key和values
clear() 清空
del 按照键
删字典
除了del 都是 字典.方法(key) dic....(key)
# 删
dic= {
'name':'alex',
'age':18,
'name':'python'
}
d = dic.pop('name')
print(d)
print(dic)
# 删没有的会报错 但是可以设置信息
# d = dic.pop('naaa')
d = dic.pop('naaa','没有元素')
print(d)
d = dic.pop('naaa',None)
print(dic)
print(d)
dic.clear()
print(dic)
dic= {
'name':'alex',
'age':18,
}
# 删除最后一个 从3.6 开始 这个也有返回值得 pop()
a = dic.popitem()
print(dic)
print(a)
del dic['name']
print(dic)
# 没有元素回报错 而且没办法 用pop 第二个提示值
# del dic['nam']
# print(dic)
# del dic
# print(dic)
# 错误 没有字典里了
三.改:
dic[key]= '******'
dic.update = #不等于 update(name,'sss') #不对
#正确书写 dic.update(name='liuer' , age = 15) 有则改之,无则添之
dic,updat(dic1) # 换成字符串的形式 ,所以可以
# 改
dic= {
'name':'alex',
'age':18,
}
dic['name'] = 'liuer'
print(dic)
dic['name'] = ['liuer' , 'liusan ']
print(dic)
# 错误 因为 name 和 不是逗号
# dic.update(name,'wanger')
# 有也不改
print(dic)
dic= {
'name':'alex',
'age':18,
} # 正确写法
#没有dic 等于 dic.update() # 有则改之 无责添之 级别高 后者改前面
dic.update(name = 'wanger' , money = 11000)
print(dic)
dic= {
'name':'alex',
'age':18,
}
dic1= {
'name':'liuer',
'high':180,
'language':'python'
}
#不对 这是 update 的作用 记错了
# dic = dic1.update(dic)
# 正确书写
dic.update(dic1)
print(dic)
四.查:
dic[key] 没有此键,报错
dic.get[key] 有就返回 没有就返回None
for 循环
# 查
print(dic['name'])
print(dic.get('name' , None)) '''
dic = {
'name_list': ['博哥', '菊哥', 'b哥', 'alex'],
'barry': {
'name': '太白金星',
'age': 18,
'hobby': 'wife',
}
}
五.字典的值键三种方法:
1.dic.keys (= dic 使用for 循环的时候)
dic = {
'name': '太白金星',
'age': 18,
'hobby': 'wife',
}
for i in dic:
print(i)
# dic.keys() 类似于list的容器类类型 高仿列表 元组
ret = dic.keys()
print(ret, type(ret))
for key in ret:
print(key)
print(ret[0])
# 可以转化成list
print(list(ret))
2.dic.values
dic.values()
print(dic.values())
# 转化成list
print(list(dic.values()))
for v in dic.values():
print(v)
3.dic.items
print(dic.items())
print(list(dic.items())) for i in dic.items():
print(i)
面试题:分别赋值
a, b = (1, 2)
print(a,b)
a, b, c = (1, 2, 3)
print(a,b,c)
a, b = 100, 1000
a, b = [100, 1000]
a, b = {'name':'alex', 'age': 73}
print(a,b)
分别赋值——————精确讲解dit.items()的含义
a = 18
b = 32
a, b = b, a
print(a,b)
print(dic.items())
for k,v in dic.items():
'''
k,v = ('name', '太白金星')
k,v = ('age', 18)
k,v = ('hobby', 'wife')
'''
print('这是键:', k)
print('这是值:', v)
d = dic.fromkeys([1,2,3],'值')
print(d) # 不可变 类型 没坑
有可变类型 有坑
d = dic.fromkeys([1,2,3],[])
d[1].append(33)
print()
{1:33 , 2:33 , 3:33}


d = dic.fromkeys([1,2,3],10)
print(d)
d[1] = 20
print(d)
一个杯子 可以装水 大家都用 -----> 可变 都变 不可变的 别的不变 只改可变的
不可变的又建立了一个 内存地址 a = 10 a = 20 两个地址
字典的嵌套:dic[][]
实例:
# 1,给这个列表['博哥', '菊哥', 'b哥', 'alex'] 追加一个元素 '老男孩'。
# 2,将这个列表['博哥', '菊哥', 'b哥', 'alex']中的alex变成首字母大写。
# 3,将这个键值对 'name': '太白金星' 的 '太白金星' 改成男神。
# 4,给barry对应的小字典增加一个键值对: weight: 160
'''
dic = {
'name_list': ['博哥', '菊哥', 'b哥', 'alex'],
'barry': {
'name': '太白金星',
'age': 18,
'hobby': 'wife',
}
}
dic['name_list'].append('老男孩')
#dic['name_list'] += '老男孩'
# ['博哥', '菊哥', 'b哥', 'alex', '老', '男', '孩'], 不对
print(dic)
# 不会做因为 没有把改了的值 换到以前的位置
dic['name_list'][3] = dic['name_list'][3].capitalize()
print(dic)
dic['barry']['name'] = '男神'
print(dic)
# 不对
# dic['barry']['weight',16]
# print(dic)
# 一般方法 找位置 赋值 增加 或者 更改 一样用
dic['barry']['weight'] = 12
print(dic)
# 函数方法 , 使用(object,'')
# 这样就添加了 不大懂
dic['barry'].setdefault('weight',16)
print(dic)
dic['keys'] 可能列表操作.append()
dic = {}
dic1 = dic.fromkeys(iter, object)
a = d.fromkeys([1,2,3],'str')
# print(id(a[1]),id(a[2]))#内存地址不同 改变一个其它肯定不变
{1: 'str', 2: 'str', 3: 'str'}
lis = ['alex','wusir','太白']
a = d.fromkeys(lis,[])
a['alex'] = 1
{'alex': [], 'wusir': [], '太白': []}
{'alex': 1, 'wusir': [], '太白': []}
python学习 day5 (3月6日)的更多相关文章
- Python 学习日志9月20日
9月20日 周三 多大年龄了,还活得像个小孩.——急什么,人生又不长. 你习惯了思考宇宙星辰,一百年真的不长,一生也就不那么长,许多人的价值观念你也就无法理解.同样,许多人也无法理解你的价值观念,感兴 ...
- Python 学习日志9月19日
9月19日 周二 今天是普通的一天,昨天也是普通的一天,刚才我差点忘记写日志,突然想起来有个事情没做,回来写. 今天早晨学习<Head First HTML and CSS>第十一章节“布 ...
- Python学习日志9月17日 一周总结
周一,9月11日 这天写的是过去一周的周总结,我从中找出当天的内容. 这天早晨给电脑折腾装机,早晨基本上没有学习,休息了一个早晨. 下午写的上周总结,完事做mooc爬虫课的作业,<Think P ...
- Python 学习日志9月21日
9月21日 周四 今天是个特殊的日子吗,总感觉9月21这个日子听着怪怪的. 今天早晨看<Head First HTML and CSS>第13章节“表格和更多列表”,内容不多,看完并做了详 ...
- Python学习日志9月13日
昨天的学习日志没有写,乱忙了一整天,政治电脑. 好奇心重,想要给电脑装上传说中LInux操作系统,各种小问题折腾到半夜,今天又折腾到晚上才真正的装上系统. 可是装上系统后又发现各种的不好用.虽然界面比 ...
- Python学习日志9月16日
刚才我差点睡着了,差资料的时候太费神,有些累. 今天早晨学习了<head first HTML and CSS>,今天把昨天没看了的关于字体和颜色的一章节看完了,真长.我详细的做了笔记,并 ...
- python学习 day19 (3月26日)----(对象组合)
深谙:非常透彻地了解:熟悉内中情形.谙,读作‘ān’ 熟悉. 1.面向对象作用:规划了代码中的函数处理的是哪一类问题 解决了传参的问题 方便扩展 方便重用 2.类的定义和使用类当中有哪些成员 ''' ...
- Python学习日志9月15日
一周就要过去了,而我跟一周以前没什么区别.回想一下,我这周做了什么事情呢.恍然若失.这周的精力都浪费在很多不必要的事情上了.学过一片古文,讲后羿学射箭,他有一个同学跟他一样聪明,在一起学习.后羿呢,专 ...
- Python学习日志9月14日
今天早晨又没有专心致志的学习,我感觉我可能是累了,需要减轻学习的程度来调整一下咯.这几天装电脑弄的昏天暗地的,身体有点吃不消了.时间真是神奇的魔法,这半个月来,每隔几天都有想要改变策略的想法.今天早晨 ...
随机推荐
- centos7安装zabbix3.5
安装centos7 自带MariaDB数据库(或者安装mysql) yum -y install mariadb-server mariadb-devel systemctlstartmariadb. ...
- 替换空格(python)
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. # -*- coding:ut ...
- Android 实现简单 倒计时60秒,一次1秒
倒计时功能如上图所示,其实就几行代码即可实现效果啦!!! /** 倒计时60秒,一次1秒 */ CountDownTimer timer = new CountDownTimer(60*1000, 1 ...
- AWVS结果分析与实践-XSS
今天趁着老师接项目,做了一丢丢实践,以下是一点点感触. 都知道AWVS是神器,可是到我手里就是不灵.拿了它扫了一个URL,结果提示XSS漏洞,实践没反应,只好愉快地享受了过程.来看看. ...
- 导出可运行jar包
@参考文档 选中项目右击export 可运行jar文件 Extract required libraries into generated JAR:将所需库导出到导出的jar包根目录下,效果如下 Pa ...
- ajax POST跨域请求完美解决
方式: js前端请求: function getOcrInfo(imageData){$.ajax({ url: 'http://localhost:8080/LSWS/ws/ocr/getWeb ...
- [Java]Spring Ioc讲解,不怕你不懂
原文地址 引述:IoC(控制反转:Inverse of Control)是Spring容器的内核,AOP.声明式事务等功能在此基础上开花结果.但是IoC这个重要的概念却比较晦涩隐讳,不容易让人望文生义 ...
- Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not mat
Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b ...
- [z]dbms_stats.lock_table_stats对于没有统计信息的表分区同样有效
常见的分区表DDL如 split partition.add partition都会生成没有统计信息的表分区table partition,长期以来我对dbms_stats.lock_table_st ...
- 前端基础之JavaScript day51
前端基础之JavaScript JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中) ...