翼度科技»论坛 编程开发 python 查看内容

Python的数据类型的内置方法

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
Python的数据类型的内置方法


  • 可变与不可变数据类型
  • 字典的内置方法
  • 元组的内置方法
  • 集合的内置方法
可变与不可变数据类型

常见的数据类型
  1. 常见的数据结构类型:链表、单链表、双链表、循环列表、(C实现的 指针)、栈、树、二叉树、平衡二叉树、完全二叉树、b树、b+树、b-树等、队列、图等
  2. 在Python中,没有值传递还是引用传递一说,都说可变类型与不可变类型
复制代码
不可变数据类型
  1. 不可变类型:str、int、float
  2.     特点:值改变了,内存地址也改变、其实改变的不是原值、而是改变之后又生成一块空间来保存新值
复制代码
可变数据类型
  1. 可变类型: list、dict、
  2.     特点:值改变了,内存地址没有改变,其实改变的是原值,只要你改变了值,原来的值就会发生变化
复制代码
字典的内置方法

定义
  1. # 定义:在{}内用逗号分隔开多元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key则必须是不可变类型,通常key应该是str类型,因为str类型会对value有描述性的功能
  2. info={'name':'tony','age':18,'sex':'male'} #本质info=dict({....})
  3. # 也可以这么定义字典
  4. info=dict(name='tony',age=18,sex='male') # info={'age': 18, 'sex': 'male', 'name': 'tony'}
  5. ic = {
  6.     'name': 'xxx',
  7.     'age': 18,
  8.     'hobby': ['play game', 'basketball']
  9. }
复制代码
取值
  1. # 1. 取值
  2. # print(ic['name'])
  3. # print(ic['age'])
  4. # print(ic['hobby'][1])
复制代码
转换
  1. 转换1:
  2. info=dict([['name','tony'],('age',18)])
  3. print(info)
  4. # 转换2:fromkeys会从元组中取出每个值当做key,然后与None组成key:value放到字典中
  5. print({}.fromkeys(('name','age','sex'),None)  )
复制代码
重点
  1. # 赋值操作
  2. '''如果key已经在字典中存在,那么,就是对原来的值进行修改,如果不存在key值,就是新增一个键值对'''
  3. dic = {
  4.     'name': 'xxx',
  5.     'age': 18,
  6.     'hobby': ['play game', 'basketball']
  7. }
  8. dic['gender'] = 'male' # {'name': 'xxx', 'age': 18, 'hobby': ['play game', 'basketball'], 'gender': 'male'}
  9. # dic['name'] = 'jerry' # {'name': 'jerry', 'age': 18, 'hobby': ['play game', 'basketball'], 'gender': 'male'}
  10. # print(dic)
复制代码
  1. #3.长度len
  2. print(len(dic))
  3. #4.成员运算
  4. in和not in#判断某个值是否在字典key
  5. print('name' in dic)
  6. True
  7. #5删除pop#通过字典的key来删除字典对应的键
  8. print(dic.pop('name'))
复制代码
  1. 字典三剑客:keys() values() items()
  2. # print(dic.keys()) # dict_keys(['name', 'age', 'hobby'])
  3. #
  4. # for i in dic.keys():
  5. #     print(i)
  6. '''values方法把字典中得所有的value值组织成一个列表'''
  7. # print(dic.values()) # dict_values(['xxx', 18, ['play game', 'basketball']])
  8. #
  9. # for i in dic.values():
  10. #     print(i)
  11. print(dic.items()) # dict_items([('name', 'xxx'), ('age', 18), ('hobby', ['play game', 'basketball'])])
  12. # for i in dic.items():  #
  13. #     print(i[0], i[1]) # ('name', 'xxx')
  14. for i, j in dic.items():  #
  15.     print(i , j) # ('name', 'xxx')
复制代码
需要掌握
  1. 需要掌握的操作:
  2. #1.get取值
  3. # print(dic.get('name')) # xxx
  4. # print(dic.get('age')) # xxx
  5. # print(dic.get('hobby')) # xxx
  6. # print(dic.get('name1')) # None
  7. '''get方法获取key不存在的时候,不会报错,会返回None,另外,还可以设置默认值'''
  8. # print(dic.get('name1', 666)) # 666
  9. """以后字典取值推荐使用get方法,中括号取值是可以用的"""
复制代码
  1. #2. 随机删除一组键值对,并将删除的键值放到元组内返回
  2. # print(dic.popitem()) # ('hobby', ['play game', 'basketball'])
  3. # print(dic.popitem()) # ('hobby', ['play game', 'basketball'])
  4. # print(dic) # {'name': 'xxx', 'age': 18}
复制代码
  1. # 3.update()
  2. '''如果key值存在,则为修改,如果不存在,则为添加'''
  3. # dic.update({'name': "jerry", 'gender': 'male'}) # 要记忆
  4. # print(dic) # {'name': 'jerry', 'age': 18, 'hobby': ['play game', 'basketball'], 'gender': 'male'}
复制代码
  1. # 4初始化变量
  2. dic = dict.fromkeys(['k1','k2','k3'],[])
  3. dic = dict.fromkeys(['k1','k2','k3'],[666]) # {'k1': [666], 'k2': [666], 'k3': [666]}
  4. dic = dict.fromkeys(['k1','k2','k3'],[666, 888]) # {'k1': [666, 888], 'k2': [666, 888], 'k3': [666, 888]}
  5. print(dic) # {'k1': [], 'k2': [], 'k3': []} # 初始化变量
  6. print(dic['k1'])
  7. print(dic['k2'])
  8. print(dic['k3'])
复制代码
  1. dic = {
  2.     'name': 'xxx',
  3.     'age': 18,
  4.     'hobby': ['play game', 'basketball']
  5. }
  6. '''setdefault:如果key值存在,则直接获取key对应的value值,如果不存在,就返回第二个参数的值'''
  7. print(dic.setdefault('name', 666)) # xxx
  8. print(dic.setdefault('name1', 666)) # 666
复制代码
元组的内置方法

定义
  1. 定义方式
  2. countries = ("中国","美国","英国")  # 常见的
  3. 本质:countries = tuple("中国","美国","英国")   
复制代码
作用
  1. 作用:元组与列表类似,也是可以存多个任意类型的元素,不同之处在于元组的元素不能修改,即元组相当于不可变的列表,'用于记录多个固定不允许修改的值,单纯用于取'
复制代码
类型转换
  1. 类型转换
  2. # 但凡能被for循环的遍历的数据类型都可以传给tuple()转换成元组类型
  3. pint(tuple('wdad'))                                           # 结果:('w', 'd', 'a', 'd')
  4. pinth(tuple([1,2,3]))                                         # 结果:(1, 2, 3)
  5. pyton(tuple({"name":"jason","age":18})) # 结果:('name', 'age')
  6. python(tuple((1,2,3)) )                                         # 结果:(1, 2, 3)
  7. python(tuple({1,2,3,4}))                                 # 结果:(1, 2, 3, 4)
  8. # tuple()会跟for循环一样遍历出数据类型中包含的每一个元素然后放到元组中
复制代码
扩展
  1. 扩展:
  2.         '''面试题:'''
  3. res = (111 )  # <class 'int'>
  4. res1 = (123.1) # <class 'float'>
  5. res2 = ('hello') # <class 'str'>
  6. '''元组内部如果只有一个元组也要加逗号,否则就不是元组,只有加了逗号才是元组'''
  7. '''以后只要是容器类型的数据类型,内部只要只有一个元素,末尾都推荐加一个逗号'''
  8. """
  9. 容器类型:只要是内部能够存放多个元素的都可以称为是容器类型
  10.     eg:list dict tuple set
  11. 不是容器类型的:int float str bool
  12. """
复制代码
集合

定义,类型转换,作用
  1. 1. 如何定义集合
  2.         s = set() # 空集合
  3. 2. 集合、list、tuple、dict一样都可以存放多个值,但是集合主要用于:去重、关系运算
  4. 3. 类型转换
  5.          pinth(s = set([1,2,3,4]))
  6.     >>> s1 = set((1,2,3,4))
  7.     >>> s2 = set({'name':'jason',})
  8.     >>> s3 = set('egon')
  9.     >>> s,s1,s2,s3
  10.     {1, 2, 3, 4} {1, 2, 3, 4} {'name'} {'e', 'o', 'g', 'n'}
  11.    
  12. 4. 去重
  13. ## 1. 去重
  14. # name_list = ['kevin', 'jerry', 'tony', 'oscar', 'tony', 'oscar', 'jerry', ]
  15. #
  16. # ## 要求:去除重复元素
  17. # # 思路:列表------------>集合
  18. # s = set(name_list) # {'kevin', 'tony', 'jerry', 'oscar'}
  19. # print(s)
  20. #
  21. # # 在把集合转为列表
  22. # print(list(s)) # ['tony', 'oscar', 'jerry', 'kevin']
  23. '''集合的另外一个特点:无序'''
  24. ###
  25. ll = [11, 22, 4, 55, 3, 66, 77, 99, 88, 10, 20, 30, 66, 77, 99, 88,]
  26. # 1. 去重
  27. # 转为集合
  28. # 2. 去重之后,保留原来的位置
  29. # 思路:循环   遍历
  30. # 1. 先定义一个空列表来存储去重之后的结果
  31. new_list = []
  32. # 2. 循环遍历
  33. for i in ll:
  34.     # 判断new_list这个列表中是否已经存在这个值,如果存在了,就不在添加,如果不存在,则追加进去
  35.     if i not in new_list:
  36.         new_list.append(i)
  37.     # 如果在的话,就不用管了
  38. print(new_list) # [11, 22, 4, 55, 3, 66, 77, 99, 88, 10, 20, 30]
复制代码
  1. friends1 = {"zero", "kevin", "jason", "egon"}  # 用户1的好友们
  2. friends2 = {"Jy", "ricky", "jason", "egon"}  # 用户2的好友们
  3. print(friends1)
  4. # # 1.合集/并集(|):求两个用户所有的好友(重复好友只留一个)
  5. # 集合嫩不嫩单个取值?
  6. print(friends1 | friends2)  # {'Jy', 'ricky', 'egon', 'kevin', 'jason', 'zero'}-------[]
  7. # 2.交集(&):求两个用户的共同好友
  8. print(friends1 & friends2)  # {'jason', 'egon'}
  9. # # 3.差集(-):
  10. # >>> friends1 - friends2 # 求用户1独有的好友
  11. print(friends1 - friends2)  # {'zero', 'kevin'}
  12. print(friends2 - friends1)  # {'Jy', 'ricky'}
  13. # 4.对称差集(^) # 求两个用户独有的好友们(即去掉共有的好友)
  14. print(friends1 ^ friends2)  # {'Jy', 'kevin', 'zero', 'ricky'}
  15. # 5.值是否相等(==)
  16. # >>> friends1 == friends2
  17. print(friends1 == friends2)  # False
  18. # 6.父集:一个集合是否包含另外一个集合
  19. # 6.1 包含则返回True
  20. # >>> {1,2,3} > {1,2}
  21. print({1, 2, 3} > {1, 2})  # True
  22. # 7.子集
  23. print({1, 2, 3} < {1, 2})  # True
复制代码
来源:https://www.cnblogs.com/zhangfanshixiaobai/p/17670286.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具