数据类型的常用操作和内置方法

Posted itchemist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据类型的常用操作和内置方法相关的知识,希望对你有一定的参考价值。

  • 可变类型和不可变类型 

          其中可变类型的意义是,当数据的取值改变时,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(kobein kobe bryant)    
    print(ddddd in kobe bryant)
    print(dddd not in kobe bryant)

      4.去掉字符串左右两边的字符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(@@@@@@@@[email protected]@@@@@@@.strip(@))    # 去除字符串中含有@的字符        kobe
    print(@@@@@@@@[email protected]@@@@@@@.lstrip(@))   # 去除字符串左边中含有@的字符    [email protected]@@@@@@@
    print(@@@@@@@@[email protected]@@@@@@@.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\tobe.expandtabs(5))   # 用5个空格填充\t
  • 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)

     

 

以上是关于数据类型的常用操作和内置方法的主要内容,如果未能解决你的问题,请参考以下文章

数据类型内置方法

05 基本数据类型及内置方法

基本数据类型

python 开发 -- 11数字类型内置方法

数据类型内置方法之数据类型与字符串类型

数据类型及内置方法2