今日内容

1.集合

2内存相关


1.集合set

  • 无序
  • 无重复(可以去重)
v = {1,2,3,4,5,6,99,100}

# 疑问:v = {}
"""
None
int
v1 = 123
v1 = int() --> 0
bool
v2 = True/False
v2 = bool() -> False
str
v3 = ""
v3 = str()
list
v4 = []
v4 = list()
tuple
v5 = ()
v5 = tuple()
dict
v6 = {}
v6 = dict()
set
v7 = set()
"""
  • 集合独有功能
    • add

      # v = {1,2}
      # v.add('Lishaoqi')
      # v.add('Lishaoqi')
      # print(v)
    • discard

      # v = {1,2,'李邵奇'}
      # v.discard('李邵奇')
      # print(v)
    • update

      # v = {1,2,'李邵奇'}
      # v.update({11,22,33})
      # print(v)
    • intersection

      # v = {1,2,'李邵奇'}
      # result = v.intersection({1,'李邵奇','小黑'})
      # print(result)
    • union

      # v = {1,2,'李邵奇'}
      # result = v.union({1,'李邵奇','小黑'})
      # print(result)
    • difference

      # v = {1,2,'李邵奇'}
      # result = v.difference({1,'李邵奇','小黑'}) # v中有且{1,'李邵奇','小黑'}没有
      # print(result)
      # v1 = {1,'李邵奇','小黑'}
      # result1 = v1.difference({1,2,'李邵奇'})
      # print(result1)
    • symmetric_difference

      # v = {1,2,'李邵奇'}
      # result = v.symmetric_difference({1,'李邵奇','小黑'})
      # print(result)
  • 公共功能
    • len

      v = {1,2,'李邵奇'}
      print(len(v))
    • for循环
      # v = {1,2,'李邵奇'}
      # for item in v:
      # print(item)
    • 索引【无】
    • 步长【无】
    • 切片【无】
    • 删除【无】pop,随机删除
    • 修改【无】不能删除
  • 嵌套问题
# 1. 列表/字典/集合 -> 不能放在集合中+不能作为字典的key(unhashable)
# info = {1, 2, 3, 4, True, "国风", None, (1, 2, 3)}
# print(info)
# 2. hash -> 哈希是怎么回事?
# 因为在内部会将值进行哈希算法并得到一个数值(对应内存地址),以后用于快速查找。 # 3. 特殊情况
# info = {0, 2, 3, 4, False, "国风", None, (1, 2, 3)}
# print(info) # info = {
# 1:'alex',
# True:'oldboy'
# }
# print(info)

2.内存相关

示例一

v1 = [11,22,33]
v2 = [11,22,33] v1 = 666
v2 = 666 v1 = "asdf"
v2 = "asdf" # 按理 v1 和 v2 应该是不同的内存地址。特殊:
1. 整型: -5 ~ 256
2. 字符串:"alex",'asfasd asdf asdf d_asdf ' ----"f_*" * 3 - 重新开辟内存。

示例二

v1 = [11,22,33,44]
v1 = [11,22,33]

示例三

v1 = [11,22,33]
v2 = v1 # 练习1 (内部修改)
v1 = [11,22,33]
v2 = v1
v1.append(666)
print(v2) # 含 666 # 练习2:(赋值)
v1 = [11,22,33]
v2 = v1
v1 = [1,2,3,4]
print(v2) # 练习3:(重新赋值)
v1 = 'alex'
v2 = v1
v1 = 'oldboy'
print(v2)

示例四

v = [1,2,3]
values = [11,22,v] # 练习1:
"""
v.append(9)
print(values) # [11,22,[1,2,3,9]]
"""
# 练习2:
"""
values[2].append(999)
print(v) # [1, 2, 3, 999]
"""
# 练习3:
"""
v = 999
print(values) # [11, 22, [1, 2, 3]]
"""
# 练习4:
values[2] = 666
print(v) # [1, 2, 3]

示例五

v1 = [1,2]
v2 = [2,3] v3 = [11,22,v1,v2,v1]

查看内存地址

"""
v1 = [1,2,3]
v2 = v1
v1.append(999)
print(v1,v2)
print(id(v1),id(v2))
""" """
v1 = [1,2,3]
v2 = v1
print(id(v1),id(v2))
v1 = 999
print(id(v1),id(v2))
"""

问题: == 和 is有什么区别?

  • == 用于比较值是否相等。

  • is 用于比较内存地址是否相等。

pythonday06数据类型(四)的更多相关文章

  1. Day1---Java 基本数据类型 - 四类八种 --九五小庞

    一.Java四大数据类型分类 1.整型 byte .short .int .long 2.浮点型 float . double 3.字符型 char 4.布尔型 boolean 二.八种基本数据类型 ...

  2. js检测数据类型四种办法

    面试题中经常会考js数据类型检测,今天我来分享一下js中常用的四种方法判断数据类型,欢迎指点更正. 废话不多说,直入正题. 1.typeof console.log(typeof "&quo ...

  3. java的基本数据类型--四类八种

    java的数据类型 1.分为基本数据类型和引用数据类型 基本数据类型的分类:整数型: byte  占用一个字节 范围-128-127 short 占用两个字节  -2^15~2^15-1 int    ...

  4. python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝

    1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_&qu ...

  5. Python基础数据类型(四) tuple元祖

    元祖tuple(,) 元祖就是不可变的列表 元祖用()表示,元素与元素之间用逗号隔开,数据类型没有限制 tu = ('科比','詹姆斯','乔丹') tu = tuple('123') 小括号中 有一 ...

  6. Py西游攻关之基础数据类型(四)-字典

    Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 七 Dictionary(字典) 字典是 ...

  7. 6、数据类型四:sets

    集合的基本特征:无序,唯一. 一个redis集合最多能存放232-1个集合元素.其强大之处在于它支持集合的“交.差.并”运算,而且能够快速的判断某个给定值是否在集合中. 1.基本命令: SADD ke ...

  8. MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)

    一.Windows 下载安装 1.去http://www.mongodb.org/downloads下载,mongodb默认安装在C:\Program Files\MongoDB目录下,到F:\Off ...

  9. JAVA基础篇NO2--Java中的基本命名规则及数据类型

    1.Java中的常量及进制 1.常量: 在程序运行的过程中,不可以改变的量,就是常量 boolean类型的值只能是true或者false null: 空常量, 代表不存在! ------------- ...

随机推荐

  1. C# 实现最小化托盘功能

    winform程序实现最小化托盘显示 1.创建新的解决方案,解决方案名称和路径自定义 2.在解决方案下面新建一个窗体,从左边工具箱,将NotifyIcon拖过去窗体,该控件的作用是:运行程序期间在Wi ...

  2. Java项目案例之---开灯(面向对象复习)

    开灯(面向对象复习) 设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)这个属性,还有开灯(on)这个方法 设计一个灯泡类(Buble),灯泡类有发亮的方法 其中有红灯泡类(RedBuble)和 ...

  3. Yii basic 模板支持连接多数据库

    1.首先修改db配置文件,修改格式如下: return [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:hos ...

  4. 产品经理人的持续交付和DevOps实践

    如果你正处于下列情形中 ,那这篇文章是为你准备的: 你目前身处技术行业,你是产品经理,并且,你明白特性分支是什么,CD代表什么,DevOps文化是什么样子的. 或者,你已经在实施敏捷,团队每周都会与您 ...

  5. Excel中vlookup函数使用

    https://baijiahao.baidu.com/s?id=1594684818733205984&wfr=spider&for=pc

  6. WinForm控件之【MonthCalendar】

    基本介绍 日期月历控件,顾名思义用来主要用来展示月历,获取年份.月份.日期.时分秒信息等 常设置属性 FirstDayOfWeek:面板展示周期的循序,一周的第一天由从周几开始排列: MaxDate: ...

  7. [记录]一则HTTP配置文件参考记录

    # cat ../conf/httpd.conf | grep -vE "^$|^#" ServerTokens OS ServerRoot "/etc/httpd&qu ...

  8. Gitlab Runner实现NetCore自动化持续集成

    目录 1.开发工具 2.GitLab服务器搭建 3.新建webapi 4.Dockerfile配置 5.配置docker-compose.yml 6.配置.gitlab-ci.yml 7.在GitLa ...

  9. windows RDP远程代码执行_CVE-2019-0708漏洞复现

    windows RDP远程代码执行_CVE-2019-0708漏洞复现 一.漏洞概述 2019年5月14日微软官方发布安全补丁,修复了windows远程桌面服务的远程代码执行漏洞,该漏洞影响了某些旧版 ...

  10. JSON的简单使用之提取多层嵌套的JSON(C#)

    JSON.NET(http://json.codeplex.com/)使用来将.NET中的对象转换为JSON字符串(序列化?),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?) 反序列 ...