元组(tuple)

元组是不可变的列表,只可以存不可以修改,早起元组类型占用内存小

定义:tup = tuple((1,2,3))

内置方法:

  • 索引取值

    1. name_tuple = ("qinyj","age",18)
    2. print(name_tuple[0])
  • 索引切片

    1. name_tuple = ("qinyj","age",18)
    2. print(name_tuple[0:2])
  • 长度len

    1. name_tuple = ("qinyj","age",18)
    2. print(len(name_tuple))
  • 循环

    1. name_tuple = ("qinyj","age",18)
    2. for i in name_tuple:
    3. print(i)
  • count

    1. name_tuple = ("qinyj","age",18)
    2. print(name_tuple.count("qinyj"))
  • index

    1. name_tuple = ("qinyj","age",18)
    2. print(name_tuple.index("qinyj"))

有序但不可变类型。

字典(dict)

定义:dic = dict()

内置方法:

优先掌握:

  • 按key存取值:可存可取(可查可修改)

    1. dic = {'a': 1, 'b': 2}
    2. print(f"first dic['a']: {dic['a']}")
    3. dic['a'] = 3
    4. print(f"second dic['a']: {dic['a']}")
  • 长度len

    1. dic = {'a': 1, 'b': 2}
    2. print(len(dic))
  • 成员运算

    1. dic = {'a': 1, 'b': 2}
    2. print("a" in dic)
  • 删除del、pop指定元素

    1. dic = {'a': 1, 'b': 2}
    2. del dic["a"]
    3. print(dic)
  • keys/values/items

    1. dic = {'a': 1, 'b': 2}
    2. print(dic.keys())
    3. print(dic.values())
    4. print(dic.items())
    5. for i,k in dic.items:
    6. print(i,k)
  • fo 循环:循环的是key

  • get:查指定元素,如果没有返回None,可设默认值


需要掌握

  • get
  • pop删除
  • popitem删除末尾键值对
  • update 扩展字典。类似list 中extend方法
  • formkeys
  • setdefault 有指定key不会改变值;无指定key则改变值

集合(set)

优先掌握

  1. 长度len
  2. 成员运算in和not in
  3. |并集、union
  4. &交集、intersection
  5. -差集、difference
  6. ^对称差集、symmetric_difference
  7. ==
  8. 父集:>、>= 、issuperset
  9. 子集:<、<= 、issubset

深浅拷贝

拷贝(赋值)

  1. >>> lt1 = ["a","b","c"]
  2. >>> print(id(lt1))
  3. 43366216
  4. >>> lt2 = lt1
  5. >>> print(id(lt2))
  6. 43366216
  7. >>> lt1.append("d")
  8. >>> print(lt1)
  9. ["a","b","c","d"]
  10. >>> print(lt2)
  11. ["a","b","c","d"]
  12. # 43366216 内存地址一样。两个变量指向同一个内存地址,一个变,另一个也改变

如果lt2 是lt1的拷贝对象,lt1 内部的任何数据类型的元素变化,lt2内部的元素也会跟着变化。因为可变类型值变id不变。

浅拷贝

  1. >>> import copy
  2. >>> lt1 = ["a","b","c",["d","e"]]
  3. >>> print(id(lt1))
  4. 43434056
  5. >>>
  6. >>> lt2 = copy.copy(lt1)
  7. >>> print(id(lt2))
  8. 43449224
  9. >>> lt1[-1].append("f")
  10. >>> print(lt1)
  11. ['a', 'b', 'c', ['d', 'e', 'f']]
  12. >>> print(lt2)
  13. ['a', 'b', 'c', ['d', 'e', 'f']]
  14. >>>

如果lt2是lt1的浅拷贝对象,lt1内部的不可变元素发生了变化,lt2不变,

如果lt1内部的可变元素发生了变化,lt2也跟着改变。

深拷贝

  1. >>> import copy
  2. >>> lt1 = ["a","b","c",["d","e"]]
  3. >>> print(id(lt1))
  4. 43434440
  5. >>> lt2 = copy.deepcopy(lt1)
  6. >>> print(id(lt2))
  7. 43447368
  8. >>> lt1[-1].append("f")
  9. >>> print(lt1)
  10. ['a', 'b', 'c', ['d', 'e', 'f']]
  11. >>> print(lt2)
  12. ['a', 'b', 'c', ['d', 'e']]
  13. >>>

如果lt2是lt1的深拷贝对象,lt1内部的任何元素发生了变化,lt2不会跟着改变。

  • 拷贝

    如果lt2 是lt1的拷贝对象,lt1 内部的任何数据类型的元素变化,lt2内部的元素也会跟着变化。因为可变类型值变id不变。

  • 浅拷贝

    如果lt2是lt1的浅拷贝对象,lt1内部的不可变元素发生了变化,lt2不变,

    如果lt1内部的可变元素发生了变化,lt2也跟着改变。

  • 深拷贝

    如果lt2是lt1的深拷贝对象,lt1内部的任何元素发生了变化,lt2不会跟着改变。

总结

存值个数

存值个数 数据类型
单个值 数字、字符串
多个值 列表、元组、字典、集合

有序 or 无序

有序 or 无序 数据类型
有序 字符串、列表、元组
无序 数字、字典、集合

可变 or 不可变

可变 or 不可变 数据类型
可变 列表、字典、集合
不可变 数字、元组、字符串

访问类型

访问类型 数据类型
直接访问 数字
顺序访问 字符串、列表、元组
key值访问 字典

拷贝/浅拷贝/深拷贝 都是针对可变类型数据而言。

Python-数据类型内置方法(2)的更多相关文章

  1. python数据类型内置方法

    内容概要 列表内置方法 字典内置方法 字符串转换成字典的方法 eval() 元组内置方法 元组相关笔试题 集合内置方法 列表内置方法 l1 = [2, 4, 5, 7, 3, 9, 0, 6] # 升 ...

  2. python数据类型内置方法 字符串和列表

    1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...

  3. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

  4. python循环与基本数据类型内置方法

    今天又是充满希望的一天呢 一.python循环 1.wuile与else连用 当while没有被关键'break'主动结束的情况下 正常结束循环体代码之后会执行else的子代码 "" ...

  5. python中其他数据类型内置方法

    补充字符串数据类型内置方法 1.移除字符串首尾的指定字符可以选择方向1: s1 = '$$$jason$$$' print(s1.strip('$')) # jason print(s1.lstrip ...

  6. python 字典内置方法get应用

    python字典内置方法get应用,如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 今天给大家分享的就是字典的get()方法. 这 ...

  7. python-字典数据类型内置方法

    字典数据类型内置方法(必考) 用途:存多个值,不通过索引取值,可以用关键字找到对应得值 定义方式:{}内以key:value的方式存储多个值,值与值之间用逗号隔开 lis = ['ruixing', ...

  8. Python的内置方法,abs,all,any,basestring,bin,bool,bytearray,callable,chr,cmp,complex,divmod

    Python的内置方法 abs(X):返回一个数的绝对值,X可以是一个整数,长整型,或者浮点数,如果X是一个复数,此方法返回此复数的绝对值(此复数与它的共轭复数的乘积的平方根) >>> ...

  9. while.for循环和基本数据类型内置方法

    while循环补充说明 流程控制之for循环 基本数据类型内置方法 内容详细 1.死循环 真正的死循环是一旦执行,Cpu的功耗会急速上升 知道系统采取紧急措施 所以 尽量不要让cpu长时间不断运算. ...

  10. 【python基础】第11回 数据类型内置方法 02

    本章内容概要 列表内置方法 字典内置方法 元组内置方法 集合内置方法 可变类型与不可变类型 本章内容详细 1.列表内置方法 list 列表在调用内置方法之后不会产生新的值 1.1 统计列表中的数据值的 ...

随机推荐

  1. 2019 牛客多校第一场 D Parity of Tuples

    题目链接:https://ac.nowcoder.com/acm/contest/881/D 看此博客之前请先参阅吕凯飞的论文<集合幂级数的性质与应用及其快速算法>,论文中很多符号会被本文 ...

  2. 2019 USP Try-outs 练习赛

    // 好久没更博客了,最近打了很多场练习赛&校内PK赛,大概自闭忙于补题吧 // 9.26 周四练习赛 A. Kolkhozy 题意 有 n 个数 \(f[i]\) ,有 q 次询问(l, r ...

  3. 剑指offer——36二叉树和为某一值的路径

    题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大 ...

  4. jdk源码阅读

    转载https://www.cnblogs.com/mh-study/p/10078548.html 1.java.lang 1) Object 12) String 13) AbstractStri ...

  5. 003-JavaString数据类型

    String类型可以和8中基本数据类型做运算(byte/short/char/int/long/float/double/boolean),且只能是连接运算 1. 区分 连接符 和 “+” 的区别 c ...

  6. JS函数 函数的作用,可以写一次代码,然后反复地重用这个代码。

    什么是函数 函数的作用,可以写一次代码,然后反复地重用这个代码. 如:我们要完成多组数和的功能. var sum; sum = 3+2; alert(sum); sum=7+8 ; alert(sum ...

  7. The linux command 之网络

    一.检查和检测网络 ping命令——向网络主机发送特殊数据包 [me@linuxbox ~]$ ping www.baidu.com 按Ctrl+C终止程序 tracepath——跟踪网络数据包的传输 ...

  8. dubbo重连机制会不会造成错误

    dubbo在调用服务不成功时,默认会重试2次. Dubbo的路由机制,会把超时的请求路由到其他机器上,而不是本机尝试,所以 dubbo的重试机器也能一定程度的保证服务的质量. 但是如果不合理的配置重试 ...

  9. 【JZOJ6274】梦境

    description analysis 其实可以贪心 先把区间按左端点排序,转折点也排序 扫一次转折点,把所有左端点在当前点左边的区间丢进优先队列里 按照贪心策略,对于某个转折点,一定选择右端点离它 ...

  10. HTML 参考手册web

    { https://www.w3school.com.cn/tags/index.asp }