Python Day 6
阅读目录:
内容回顾:
深浅拷贝:
元组:
字典
集合
##内容回顾
#1.数字类型
int | float | bool | complex #2.字符串 #常规操作:
-- 索引取值[index] | 切片[s_i:e_i:step] | 拼接 "%s" , ""+""
-- 长度 len() | 成员运算 in , not in | for循环(迭代)
重点: #3.列表
# 列表中的值可以为任意类型
# 增删改查
#增:append(obj) | insert(index, obj) | extends(iterable)
#删:remove(obj) | pop() | pop(index) | del ls[index] | clear()
#改:ls[index] = new_obj
#查:ls[index] | ls #4.可变与不可变类型
#可变类型:变量存的地址不变,值可以发生改变
#不可变类型:变量存的地址不变,值永远不能发生改变(值一旦发生改变,变量存放的地址一定改变)
##深浅拷贝
# 值拷贝:应用场景最多
ls = [1, 'abc', [10]] ls1 = ls # ls1直接将ls中存放的地址拿过来
# ls内部的值发生任何变化,ls1都会随之变化 ls2 = ls.copy() # 新开辟列表空间,但列表中的地址都是直接从ls列表中拿来
# ls内部的可变类型值发生改变,ls2会随之变化 ls3 = deepcopy(ls) # 新开辟列表空间,ls列表中的不可变类型的地址直接拿过来,但是可变类型的地址一定重新开辟空间
# ls内部的所有类型的值发生改变,ls3都不会随之变化


##元组类型
元组:可以理解为不可变的列表
# 1.值可以为任意类型
# 2.可以存放多个值 - 可以进行成员运算
# 3.可以存放重复的值 - 可以计算成员出现的次数
# 4.有序存储 - 可以通过索引取值,可以切片 # 常用操作
# 1.索引取值
print(t1[1], type(t1[1]))
print(t1[-3]) # 2.运算(拼接)
print((1, 2) + (2, 3)) # 3.长度
print(len(t1)) # 4.切片
print((2, 1, 3)[::-1]) # 5.成员运算
print(True in t1)
print(False in t1) # False == 0, t1中如果有0或False,该结果都是True # 6.for循环
for obj in t1:
print(obj, end=" ")
print() # 方法
print(t1.count(0)) # 对象0在元组中出现的次数 print(t1.index(123, 4, len(t1))) # 对象0在区间4~末尾第一次出现的索引
##元组不可变
##字典类型
#字典的相关概念 # 容器(集合):存放多个值的变量
# 单列容器(系统中的单列容器很多):list | tuple
# 双列容器(map):只有dict,存放数据 成对出现,dict存放数据采用 key-value键值对方式 # 字典中的key可以为什么类型:key必须为不可变类型
# -- key是取value的唯一依据,key一旦被确定,就需要唯一确定(不能被改变)
# 字典中的value可以为什么类型:value可以为任意类型
# -- value是用来存放世间所有存在的数据 # key要确保唯一性,不能重复,值可以重复,并且可以被改变 => 字典为可变类型 dic = {'a': 10, 1: 20, True: 30, (): 40} # 1和True都是1,key具有唯一性,所以只保留最后一次值
print(dic) # {'a': 10, 1: 30, (): 40}
#字典的定义 # 空字典
d1 = {}
d2 = dict()
# 用map映射创建字典
d3 = dict({'a': 1, 'b': 1})
print(d3)
# 用关键字赋值方式
d4 = dict(name='Bob', age=18) # 参数=左侧的名字就是合法的变量名,都会被转化为字符串形式的key
print(d4)
# 创建有多个key值采用默认值的方式: 默认值不写默认None,也可以自定义
d5 = {}.fromkeys('abc', 0)
print(d5)
#字典的操作
dic = {'a': 1, 'b': 2}
print(dic)
# 增: 字典名[key] = 值 => key已存在就是修改值,不存在就是新增值
dic['c'] = 3
print(dic)
# 改
dic['c'] = 30
print(dic)
# 查:字典名[key]
print(dic['c']) # 只能查找已有的key,没有崩溃
# 有默认值的查询:有key取出对应value,没有返还默认值,默认值可以自定义
print(dic.get('d', 'http://www.baidu.com'))
# 删
print(dic)
# 清空
# dic.clear()
# pop(k)删除指定key的value并返还删除的value
# res = dic.pop('a')
# 从dic末尾删除,返还(key, value)形成的元组
res = dic.popitem()
print(dic, res)
# 其他方法
# 更新: a有值覆盖,c没被新操作,带下来,b为新增,增加并赋值
dic = {'a': 1, 'c': 2}
d = {'a': 10, 'b': 20}
dic.update(d)
print(dic) # {'a': 10, 'c': 2, 'b': 20}
# 带默认值的新增: 新增key,key已有,啥事不干,没有添加key,值就是第二个参数
dic.setdefault('z', 100)
print(dic)
# 字典的循环
# 1.直接循环,就是循环得到key
# for k in dic:
# print(k)
# 2.循环keys
# print(dic.keys())
# for k in dic.keys():
# print(k)
# 3.循环values
# print(dic.values())
# for v in dic.values():
# print(v)
# 同时循环key和value (key, value)
print(dic.items())
# a, b = (1, 2)
# print(a, b)
# for res in dic.items():
# print(res)
# 重点
for k, v in dic.items():
print(k, v)
# 解压赋值
# a, _, _, b = (1, 2, 3, 4)
##集合类型
# 空集合:不能用{},因为用来标示空字典
s = set()
print(s, type(s))
# 概念:
# 1.set为可变类型 - 可增可删
# 2.set为去重存储 - set中不能存放重复数据
# 3.set为无序存储 - 不能索引取值
# 4.set为单列容器 - 没有取值的key
# 总结:set不能取值
# 增
s.add('')
s.add('')
s.add('')
print(s)
s.update({'', ''})
print(s)
# 删
# res = s.pop()
# print(res)
# s.remove('1')
# print(s)
s.clear()
print(s)
# set运算
# 交集:两个都有 &
py = {'a', 'b', 'c', 'egon'}
lx = {'x', 'y', 'z', 'egon'}
print(py & lx)
print(py.intersection(lx))
# 合集:两个的合体 |
print(py | lx)
print(py.union(lx))
# 对称交集:抛出共有的办法的合体 ^
print(py ^ lx)
print(py.symmetric_difference(lx))
# 差集:独有的
print(py - lx)
print(py.difference(lx))
# 比较:前提一定是包含关系
s1 = {'', ''}
s2 = {''}
print(s1 < s2)
##集合运算图

Python Day 6的更多相关文章
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
- Apache执行Python脚本
由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...
- python开发编译器
引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...
- 关于解决python线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- Java就业班 mysql02
今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MYSQL中的表关系分析并能正确建表 昨天内容回顾: 数据库的创建 : create ...
- ArrayList的addAll方法
方法实现如下: public boolean addAll(Collection c) { Object[] a = c.toArray(); int numNew = a.length; ensur ...
- IDEA与eclipse:vm参数调优笔记
我的电脑配置12G内存,64位,win10系统. 首先,idea,是在idea中安装目录下的bin目录下面找到位的同学注意找到idea32.exe.vmoptions的文件去编辑. 更改文件,无非大多 ...
- ReactiveX 学习笔记(25)使用 RxJS + Vue.js 调用 REST API
JSON : Placeholder JSON : Placeholder (https://jsonplaceholder.typicode.com/) 是一个用于测试的 REST API 网站. ...
- 浅谈Java堆内存分代回收
目录 1.概述 2.堆内存是如何分代的 3.各分代之间是如何配合工作的 1.概述 与C++不同的是, 在Java中我们无需关心对象占用空间的释放, 这主要得益于Java中的垃圾处理器(简称GC)帮助我 ...
- 【译】图解Transformer
目录 从宏观上看Transformer 把张量画出来 开始编码! 从宏观上看自注意力 自注意力的细节 自注意力的矩阵计算 "多头"自注意力 用位置编码表示序列的顺序 残差 解码器 ...
- MySQL相关sql语句
登陆mysql: mysql -hlocalhost -uroot -proot 创建数据库:create database dbname charset utf8 查看数据库:show databa ...
- 寻找遗失的tags
现象:查询数据库,存在tags:{} 的字段,但是api查询时,不存在tags字段 日志定位Sample的init方法中对resource_metadata的扁平处理: 3.对应方法分析 在ceilo ...
- HC-05蓝牙模块配对步骤
参考:https://blog.csdn.net/m0_37182543/article/details/76383247
- python之函数递归
函数递归调用 在函数内部,可以调用其它函数,如果一个函数在内部调用自身,即是递归调用 为防止无限递归类似于死循环,需要如下: 1.必须要有一个明确的返回值: 2.每次进入更深一层递归时,问题规模应该比 ...