Python基础之数据类型补充

Python基础之数据类型补充

7.基础数据类型的补充

7.1、基础类型补充

  • bool 布尔值

    • 人类是有多种方式表示对错,但是计算机只有两种。

      • True

      • False

        • print(1 > 2)
          print(3 == 3)
          
  • float 浮点型

    • 是Python基本数据类型中的一种,Python的浮点数类似数学中的小数和C语言中的double类型;
    • 浮点数和整数在计算机内部存储的方式是不同的,整数运算永远是精确的,然而浮点数的运算则可能会有四舍五入的误差
    • 整型和浮点型运算的结果也是浮点型;
  • 我们到现在为止讲过的基础数据类型:int、str、list、tuple、dict、set、bool、float

7.2、str的补充

  • s1 = 'barry ALLen'
    print(s1.capitalize())  # 首字母大写,其余字母小写
    
    s2 = 'barry allen;sb,alex'  # 每个单词的首字母大写
    print(s2.title())
    
    s3 = 'Barry Allen'
    print(s3.swapcase())  # 大小写反转
    
    s4 = 'barry'
    print(s4.center(20, '*'))
    
    # index find count
    
    

7.3、list列表的补充

  • lst = [1, 6, 5, 7, 9, 21, 11]
    print(lst.count(6))  # 统计次数
    
    # 通过元素找索引 index
    # print(lst.index(9))
    # 排序
    # 从小到大排序
    # lst.sort()
    # 从大到小排序
    # lst.sort(reverse=True)
    # 倒序反转
    # lst.reverse()
    
    # 列表与列表相加
    # 列表与数字相乘
    
    print(lst)
    

7.4、dict字典的补充

  • popitem 删除最后一组键值对

    dic = {'name': 'Allen', 'age': 25, 'sex': 'male'}
    ret = dic.popitem()
    print(ret)
    print(dic)
    
  • fromkeys() 创建字典

    dic = {'name': 'Allen'}
    # ret = dict.fromkeys('abc', 123)
    ret = dic.fromkeys('abc', 123)
    print(ret)
    
    # 坑!!!
    dic = dict.fromkeys('abc', [1, 2])
    # print(dic)
    dic['a'].append(666)
    print(dic)
    print(id(dic['a']))
    print(id(dic['b']))
    print(id(dic['c']))
    

7.5、汇总

  • 数据类型的分类

    • 按照容器与非容器

      • 容器型:list tuple dict set
      • 非容器:int float str bool
    • 按照可变与不可变

      • 可变(不可哈希): list dict set
      • 不可变(可哈希): int float str bool tuple
    • 有序与无序

      • 无序:set

      • 有序:int float str bool list tuple dict

  • 数据类型的转换

    int float str bool list tuple dict set。
    
    int  float转换
    i1 = 3.84
    print(int(i1))  # float ---> int
    print(float(3)) # int ---> float
    
    int  ---> str
    pass
    
    int -----> bool
    i = 100
    i = 0
    print(bool(i))
    print(int(True))
    print(int(False))
    
    str ---> list
    	split  
    	join
    
    list ---> tuple
    

    list —> set 列表的去重

  • 所有的数据类型转化成bool值为False

    0, '', [], (), {}, set(), None
    # 零,空字符,空列表,空元组,空字典,空集合,none
    

7.6、循环列表的坑

  • 前提!!在循环当前列表的情况下, 如果改变此列表的大小,结果一定会有问题。

  • 简单测试

  • 完成下列需求:

    l1 = [11, 22, 33, 44, 55]
    # 请把索引为奇数对应的元素删除
    
    • 正常思路

      for ind in range(len(l1)):
      	if ind % 2 == 1:
          	l1.pop(ind)
      print(l1)!
      
    • 在这里插入图片描述

    • 正确的解决方式

      方法一
      
      del l1[1::2]
      
      print(l1)
      
      方法二 思维置换
      
      l1 = [11, 22, 33, 44, 55]
      
      lst = []
      
      for i in range(len(l1)):
      
      if i % 2 == 0:
      
      lst.append(l1[i])
      
      print(lst)
      
      方法三 倒序删除
      
        l1 = [11, 22, 33, 44, 55]
        for i in range(len(l1)-1,-1,-1):
            # print(i)
            if i % 2 == 1:
                l1.pop(i)
        print(l1)
      

      在这里插入图片描述

7.7、循环字典的坑

  • 需求:遍历字典删除其中的元素

    dic = {'k1':'小白','k2':'barry','k3': '白白', 'age': 18}
    
    # 正常思路
    for key in dic:
    	if 'k' in key:
    	dic.pop(key)
    	
    print(dic)
    
    # 遍历一个字典时,如果改变了这个当前字典的大小(增或者删值了),则会报错。
    
    
    lst = list(dic.keys())
    print(lst)
    
    for key in lst:
    	if 'k' in key:
    	dic.pop(key)
    	
    print(dic)
    

常思路

for key in dic:
  	if 'k' in key:
  	dic.pop(key)
  	
  print(dic)

遍历一个字典时,如果改变了这个当前字典的大小(增或者删值了),则会报错。

  lst = list(dic.keys())
  print(lst)
  
  for key in lst:
  	if 'k' in key:
  	dic.pop(key)
  	
  print(dic)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值