zoukankan      html  css  js  c++  java
  • 数据类型的常用操作和内置方法

    • 可变类型和不可变类型 

              其中可变类型的意义是,当数据的取值改变时,python并不会为它开辟一个新的内存去存放,而是直接在原来的内存地址即id中修改,相当于     数据还是在原来的内存空间中作出修改,并不会成为一个“见义忘利”的小人还是会知恩图报,回到最初创建它的地方因此这种人的待遇薪资自然是可以变化的(可变),并不会因为其他而跳槽。这样的类型主要是列表和字典

             不可变类型的意义是,当用户改变了该数据的取值,python会为其开辟一个新的内存空间存放修改完的数据,看到新的空间后,该数据表示不想再回到原来的地址,想要来新地方了。像这种数据稍微给他点好处就搬走的,他的好处待遇自然就不应该得到变化(不可变),这样的类型主要是整型,浮点型,字符串类型等。

             用代码就比较清晰地表示出来了:

    •  列表
    • li1= ['1','2','3','4','5']
      print(id(li1))     # 输出的是34088968
      li1.append(444)
      print(id(li1))     # 输出的是34088968
    • 整型

    • n = 99
      print(id(n))    # 输出的是 1584101920   
      n += 1
      print(id(n))    # 输出的是 1584101952
    • 整数类型(Integer)

    • 定义

    • kobe = 24   # kobe = int(24)
      print(kobe) # 输出24
      int('abececafasf')  
      int ('12.3')
      # 上面两个字符串中的内容都不属于整数类型 所以会报错
    • 常用方法:进制的转换(2进制,8进制,16进制)

    • print(bin(20))  # 输出0b10100
      print(oct(20))  # 输出0o24
      print(hex(20))  # 输出0x14
      
      #   十进制转换其他进制
    • print(int('1010',2))    # 输出10      二进制转十进制
      print(int('1010',8))    # 输出520     八进制转十进制     
      print(int('1010',16))   # 输出4112    十六进制转十进制
      
      #值得注意的是int()中的进制数必须是字符串类型,否则会被报错
    • 字符串类型

    • 常用操作

          1. 按索引取值和切片

    • a = 'kobe bryant'
      print(a[6])     # 正向按索引取值 第一个字符为0 依次按字符增加索引 
      print(a[-4])    # 反向按索引取值 最后一个字符的index为-1,之后从右往左依次减1
      
      
      
      print(a[0:2])   # 正向连续从第一个字符开始取一串字符,其中:后的数字代表着所要字符的长度 而且:前的数字务必是零
      print(a[6:2:-1])  # 反向按索引取值,步长为-1,从索引值往后取 其中的2代表着切片操作截止的索引值所代表的字符

          2. 长度

    • a = 'kobe bryant'、
      print(len(a))   # 包含空格的长度 输出的是11

          3. 成员运算 in or not in: 判断一个字符在不在目标字符串中;

    • print('kobe'in 'kobe bryant')    
      print('ddddd' in 'kobe bryant')
      print('dddd' not in 'kobe bryant')

          4.去掉字符串左右两边的字符strip 不管中间字符里的奇怪字符

    • a = '@@@@@kobe bryant$#@@#$$@#@$!%'
      print(a.strip('@ #$!%'))

          5. split切分

    • a = 'name;age;height;weight;nationality'
      print(a.split(';'))
      # 将字符串中以;分隔的字符以列表的形式输出 ['name', 'age', 'height', 'weight', 'nationality']

          6. 循环

    • n = 'kobe bryant'
      for item in  n:
          print(item)
      # 依次单个输出字符串的每一个字符
    • 内置方法

    • strip,lstrip,rstrip方法

    • print('@@@@@@@@kobe@@@@@@@@'.strip('@'))    # 去除字符串中含有@的字符        kobe
      print('@@@@@@@@kobe@@@@@@@@'.lstrip('@'))   # 去除字符串左边中含有@的字符    kobe@@@@@@@@
      print('@@@@@@@@kobe@@@@@@@@'.rstrip('@'))   # 去除字符串右边中含有@的字符    @@@@@@@@kobe
    • upper,lower方法

    • n = 'Kobe Bryant'
      ret = n.upper()     #将字符串中的英文字母一律小写 
      res = n.lower()     #将字符串中的英文字母一律大写
      print(ret)    
      print(res)
    • startswith,endswith方法

    • n = 'kobe bryant is a good basketall player'
      print(n.startswith('k'))    # 判断一个字符串的首字母是否为内置方法指定的首字母    输出 True
      print(n.startswith('d'))    # 输出 False
      print(n.endswith('r'))      # 判断一个字符串的最后一个字母是否为指定的首字母      输出True
    • format的三种用法

    • print('kobe is a {} player, his age is {}'.format('basketball','40'))       # 按顺序坐座位 先到先得
      print('kobe is a {0} player, his age is {1}'.format('basketball','40'))     # 按索引坐座位 有规可循
      print('kobe is a {sports} player, his age is {number}'.format(sports='basketball',number='40'))    # 按照标签内容坐座位
    • find,rfind,index方法

    • n = 'kobe bryant is a good basketall player'
      print(n.find('kobe'))   # 在字符串中查找是否含有'kobe'的字符 如果有则输出0即为True 如果没有则输出-1则为False
      print(n.rfind('kobe'))  # 从字符串的右边查找是否有'kobe'的字符
      print(n.find('kobe',0,2))   # 从字符串的0位到2位查找是否含有kobe的字符 如果没有则输出-1,反之则输出0
      print(n.index('o'))     # 从左到右依次查找字符串内指定字符'o'的索引,先找到的第一个'o'立即输出其索引,不管之后有多少个o
      print(n.index('ood'))   # 依次在指定字符串查找有'ood'字符(整体查找),找到后输出该字符的首字母索引
    • center,ljust,just,zfill方法

    • print('kobe'.center(50,'@'))    # 以kobe字符为中心,用@字符填充其两边,使得输出的字符串中字符的个数达到50个
      print('kobe'.rjust(50,"@"))     # 将kobe字符放在右边,用@字符填充左边,使整个字符串的字符个数达到0个
      print('222'.zfill(50))          # 在222字符的左边补充0,直至字符个数达到50个
    • expandtab方法

    • print('k	obe'.expandtabs(5))   # 用5个空格填充	
    • capitalize,swapcase,title方法

    • print('bryant'.capitalize())    # 字符串的首字母大写
      print('BrYaNt'.swapcase())      # 字符串的每一个字母大写的换成小写,小写的换成大写
      print('Kobe is a great player'.title())     # 每个单词的首字母大写
    • 列表类型

    • l1= list('kobe bryant')
      print(l1)       # 相当于for循环,将字符串中的字符依次放入列表
      dic2 = list({'sport':'basketball','age':'40','championship':'5'})
      print(dic2)     # list只能识别字典中的key值,因此只能将key值放入列表
    • 切片和索引取值方法

    • l1 = ['sport', 'age', 'championship',21234,[1,2,3,4]]
      print(l1[2])    # 取出索引值为2的列表中的数据
      l1[0] = 'kobe'  # 对列表中索引值为0的数据进行替换 会改变原先list的内容
      print(l1)
      print(l1[0:4:2])    # 从列表索引值为0到4,步长为2进行取值,有头没尾
    • 长度和成员运算

    • l1 = ['sport', 'age', 'championship',21234,[1,2,3,4]]
      print(len(l1))          # 输出列表的长度 即 元素的个数
      print('spddt' in l1)    # 判断想要查找的字符在不在列表里,输出布尔值
    • 追加和插入值

    • l1 = ['sport', 'age', 'championship',21234,[1,2,3,4]]
      l1.append('FMVP')       # 在列表的最后加入值
      print(l1)
      l1.insert(0,'Italy')    # 在列表的索引值出加入字符
      print(l1)
    • 一次性插入多个值

    • l1 = ['sport', 'age', 'championship',21234,[1,2,3,4]]
      l1.extend(['1',2,3])      # 在列表中插入多个值,看起来是列表但是插入的却是整数或者字符串
      print(l1)
    • 删除方法的几种方式

    • l1 = ['sport', 'age', 'championship',21234,[1,2,3,4]]
      del(l1[2])      # 删除索引值所代表的的数据 由于列表是可变类型所以该方法会改变原先列表的
      print(l1)
      delete = l1.remove([1,2,3,4])   # 删除所指定的数据,并且返回的是None 而不是列表,同样列表的内容被删除后也一样放在原先的地址里
      print(l1,delete)
      res = l1.pop(-1)                # 弹出(即返回)索引值所代表的数据,并删除,同样列表的内容一样变化
      print(l1,res)
    • 循环

    • l1 = ['sport', 'age', 'championship',21234,[1,2,3,4]]
      for item in l1:
          print(item)
  • 相关阅读:
    第四章 利用函数实现指定的功能
    5-7 点到原点的距离(多态)
    5-2 宠物的生长(多态)
    5-7 学生cpp成绩统计
    5-6 学生CPP成绩计算
    php将远程图片下载保存到本地
    vs2010 调试快捷键
    vs2010 快捷键大全
    [C#] 使用Application.AddMessageFilter当做Form的热键
    C# 收发和处理自定义的WINDOWS消息
  • 原文地址:https://www.cnblogs.com/ITchemist/p/11129183.html
Copyright © 2011-2022 走看看