zoukankan      html  css  js  c++  java
  • python之常见数据类型(str,list,tuple,dict)及操作

    I.字符串(str)
    (1)取值

    •  字符串中的元素:单个字母,数字,汉字。单个字符都称为元素。

      s = 'hello!'
    • len(数据):统计数据的长度

      print(len(s))  # 6
    • 取某个值: 字符串名[索引值]

    • 正序:索引值从0到 (len-1) , 逆序:索引值从-(len)到-1
    • 切片:字符串名[索引头:索引尾:步长] 取头不取尾,步长默认为1
    • 取全部:字符串名[:]
    • 倒序:字符串名[::-1],字符串名[-1: -(len):-1]
      print(s[5])  # 索引,!
      print(s[-1])  # !
      print(s[1:5:2])   # el      # 取头不取尾1,3
      print(s[1:5])  # ello      # 1,2,3,4
      print(s[2:4:2])  # l     # 2
      print(s[:])  # hello!     # 取全部
      print(s[:4])  # hell     # 取3之前的全部0,1,2,3
      print(s[3:])  # lo!     # 3以后的全取 3,4,5
      print(s[-1:-7:-1])  # 倒序输出:!olleh
      print(s[::-1])  # 倒序输出:!olleh

    (2)分割 :字符串名.split('指定切割符号',指定切割次数)

    • 只有字符串可以使用
    • 返回一个列表类型的数据
    • 切割次数默认为1
      print(s.split('e'))  # ['h', 'llo!']
      print(s.split('l'))  # ['he', '', 'o!']
      print(s.split('l', 1))  # ['he', 'lo!']

    (3)替换 :字符串名.replace('指定替换值','新值',指定替换次数)

    s1 = 'heelo!'
    new = s1.replace('o', '@')
    print(new)  # heel@!
    new1 = s1.replace('e', '1', 2)
    print(new1)  # h11lo!

    (4)去除指定字符:字符串名.strip('指定去除字符',指定去除次数)

    # 只去掉头和尾的字符,不能去除直接字符
    s = ' hello '
    new3 = s.strip()    # 默认去空格
    print(new3)   # hello
    new4 = s.strip(' he')
    print(new4)  # llo

    (5) 拼接

    • +:注意必须数据类型相同
    • join:字符串名.join((字符串1,字符串2))
      s_1 = 'python,'
      s_2 = 'welcome!'
      s_3 = 666
      print(s_1 + s_2 + str(s_3 ))  # s_3强制转换后才能拼接  # python,welcome!666
      print(s_1, s_2, s_3)  # python, welcome! 666

    (6)格式化输出

    • format 用{}来占位
    • %:%s字符串(任何数据), %d数字(整型) %f浮点数 (%.2f四舍五入保留两位小数,.x %指定保留百分比位数
    • 数字补齐: 数字补零(填充左边,宽度为4)【{:x>4s}】;数字补零(填充右边,宽度为4)【{:x<4s}】
    • 对齐: 左对齐,默认宽度为10 【{:10s}】;左对齐,宽度为10【{:<10s}】;中间对齐,宽度为10【{:^10s}】
      age = 18
      name = 'zhengzi'
      print("欢迎进入" + str(age) + "岁的" + name + "的博客园")  # 欢迎进入18岁的zhengzi的博客园
      # (1)格式化输出1:format 用{}来占位
      print("欢迎进入{}岁的{}的博客园".format(age, name))  # 欢迎进入18岁的zhengzi的博客园,默认顺序
      print("欢迎进入{1}博客园,她今年{0}".format(age, name))  # 欢迎进入zhengzi博客园,她今年18
      # (2)格式化输出2:% %s字符串(任何数据), %d数字(整型)  %f浮点数 (%.2f四舍五入保留两位小数)
      print("欢迎进入%d岁的%s的博客园" % (age, name))  # 欢迎进入18岁的zhengzi的博客园

    (7)字符串转义

    • :换行符 :水平制表符(tab键 :为4个字符) r:关闭转义


    II. 列表 (List)

    什么时候用列表?---同一个类型的数据,建议用列表
    注意:列表中的子元素为元组,不可以对元组的子元素进行修改,但可以整体修改
    m = [1, 0.02,'hello',(1,2,3),True]
    # m[3][2] = 'nihao'错误
    m[3] = 'nihao'
    print(m)  # [1, 0.02, 'hello', 'nihao', True]

    例如:

    a = [1, 0.02,'hello',[1,2,3],True]

    (1) 取值

    • 取某个值 : 列表[索引值]
    • 切片 : 列表名[索引头:索引尾:步长]
      # 取值
      print(a[-1])  # True
      print(a[2])  # hello
      #切片
      print(a[::2])  # [1, 'hello', True]
      print(a[0:5:2])   # [1, 'hello', True]

    (2) 添加元素

    • 追加(1个元素)在末尾: 列表名.append(追加的元素)
    • 插入: 列表名.insert(指定位置,插入值)
    • 添加多个值 : 列表名.extend(元素1,元素2...)
      a = [1, 0.02,'hello',[1,2,3],True]
      a.append('你很可爱')
      print('a列表的值{0}'.format(a))
      
      a.insert(2,'kite')
      print('a列表的值{0}'.format(a))
      
      
      a.extend([11,12,13])
      print('a列表的值{0}'.format(a))  # a = [1, 0.02,'hello',[1,2,3],True,11,12,13]

    (3) 修改 : 列表名[索引值] = 赋新的值

    b = [1, 0.02,'hello',[1,2,3],True]
    b[1] = 'Time'  # 赋值
    print('b列表的值{0}'.format(b))

    (4) 删除

    • 删除指定元素 : 列表名.pop(索引值) , 列表名.remove(索引值) 【指定元素不存在,报错】
    • 删除最后一个元素 : 列表名.pop()
    • 清空列表 : 列表名.clear()
      a.pop()
      a.pop(2)  # 删除a[2] #删除指定索引位置的元素
      
      a.remove(1)  # 删除1
      
      a.clear()

    (5)查找元素索引值:列表名.index(元素)

    • 查找指定元素的下标,如果没有报错,找到返回下标

    (6)统计元素次数:列表名.count(元素)
    (7)排序:列表名.sort() 【只对数值排序】

    • 升序(从小到大): 列表名.sort()
    • 降序:列表名.sort(reverse=True)

    (8)反转:列表名.reverse()
    (9) 使用时间 : 需对元素进行增删改查时

    注意:快速格式化(解决列表值之间有下划线的问题):快捷键:Ctrl+Alt+L 或 code - reformat code

    III. 元组 ( Tuple )

    什么时候用列表?---操作数据库存放时,不支持修改(增删改)

       注意:元组中的子元素为列表,可以对列表的子元素修改

    m = (1, 0.02,'hello',[1,2,3],True)
    m[3][2] = 'nihao'
    print(m)  # (1, 0.02, 'hello', [1, 2, 'nihao'], True)

    (1) 取值

    • 取单个值 : 元组名[索引值]
    • 切片 : 元组名[索引头:索引尾:步长]
      a = (1, 0.02,'hello',[1,2,3],True)
      
      print(a[-1])  # True
      print(a[2])  # hello
      
      print(a[::2])  # [1, 'hello', True]
      print(a[0:5:2])   # [1, 'hello', True]

    注意:元组里面只有一个元素,需要加逗号 【如果不加逗号,不是元组,是数值或字符串】

    x = ('hello')
    print(type(x))  # <class 'str'>
    y = (1)
    print(type(y))  # <class 'int'>
    z =(1,)
    print(type(z))  # <class 'tuple'>

    列表与元组的区别:列表是可变的,可以追加,修改,删除其中的元素;而元组是不可变的,不可以追加,修改,删除其中的元素。元素个数不确定时,建议使用列表。

    IV. 字典 ( Dict )
    (1)表达方式

    • key:value(键值对)
    • dict 内置函数dict(key1=value1,key2=value2)
    • 列表嵌套元组:dict([(键1,值1),(键2,值2)])

    (2) 取值

    • 取键对应的值 : 字典名[key] 【键不存在,会报错】;字典名.get(key) 【如果键不存在,返回NONE】
    • 取所有键 : 字典名.keys()
    • 取所有值:字典名.values()
    • 取键值对 : 字典名.items() 【返回 是dict_items类型,可以通过list转为列表类型;转换后,列表嵌套元组格式】

    (3) 新增

    • 设置默认值 : 字典名.setdault()
    • 字典里不存在的key :字典名[新key] = value
    • 增加多个元素:字典名.update({key1:value1,key2:value2})

    (4) 修改

    • 字典中已存在的key : a[已存在的key] = value

    (5) 删除

    • 删除指定key的键值对 : 字典名.pop(key)
    • 删除字典中最后一个键值对:popitem()
    • 删除数据的关键字,可以删除任何数据(可变类型): del 字典名[key]
    • 删除整个字典:del 字典名
    • 清空 : 字典名.clear()

    (6) 拷贝: 字典名.copy()

    n2变,n变,n1不变 :
    n = {'name':'kite','age':18}
    n1 = n.copy()
    n2 = n
    n2[2] = 'four'
    print('修改后n',n)
    print('修改后n1',n1)
    print('修改后n2',n2)

    V. 布尔值 : bool , 返回值是True,False
    VI. 数值 ( int,float )

  • 相关阅读:
    返回一个整数数组中最大子数组的和
    软件工程概论第五周学习进度
    软件工程概论第四周学习进度
    软件工程个人作业03
    软件工程概论第三周学习进度
    软件工程个人作业02
    软件工程概论学习进度第二周
    寻找水王
    第七周学习进度
    二维数组最大值
  • 原文地址:https://www.cnblogs.com/kite123/p/13743672.html
Copyright © 2011-2022 走看看