Python列表元组字典及字符串

高级变量类型
  • 列表—List—类似于数组—专门存储一串信息
    • 定义
      • num_list = [num1, num2, num3]
      • num_list[0]—0就是索引—索引又可以理解为下标
    • 常用方法
      list = ["zhangsan", "lisi", "wangwu"]
      #取值
      print(list[2])
      #知道数据求索引
      print(list.index("wangwu"))
      #修改
      list[2] = "sanzhang"
      #增加
      temp_list = ["tang", "yang", "wang"]
      list.insert(1, "xiaomei") # 指定在索引位置插入数据
      list.append("wangxiaoer") # 列表的末尾追加数据
      list.extend(temp_list) # 列表后尾直接加入新的一组列表
      #删除
      list.remove("wangwu") # 列表中删除指定数据,如果有多个重复则只删除第一个
      list.clear() # 清空列表
      list.pop() # 列表中最后一项数据删除
      list.pop(3) # 列表中指定删除数据的位置
      del list[1] # 本质上是一个变量从一个内存中删除---一旦删除则不可再使用该变量---这是一个关键字
      #统计相关
      len(list)
      list.count("zhangsan")# 统计数据重复出现次数
      # 升序
      list.sort()
      #降序
      list.sort(reverse=True)
      #列表反转
      list.reverse()
    
    • 方法与函数的调用区别
      • 方法—要有一个对象然后才用.调用方法—对象.方法名(参数)
      • 函数—要有一个导入模块而后用.调用模块中的函数—函数名(参数)
    • 列表的使用场景
      • 列表存储多个相同或不同类型的数据
      • 通过迭代遍历在循环体内针对列表的每一项元素,执行相同的操作
  • 元组—多个元素组成的序列—与列表的不同之处在于元素不能修改
    • 元组具有特定的应用场景—用于存储一串信息,数据之间使用,分隔—索引从0开始
    • 定义
      info_tuple = (name1,name2)
      tuple = ()创建空元组
      type(info_tuple)输出类型
      info_tuple[0]---查找对应索引所代表的数据,注意这里是[]
    
    • 常用方法
      infor = ("zhangsan", 18, 1.78)
      #取值和取索引
      print(infor[0])
      print(infor.index("zhangsan"))
      #统计计数
      print(infor.count("zhangsan"))
      #统计元组中包含元素的个数
      print(len(infor))
    
    • 应用场景
      • 函数的参数和返回值—一个函数可以接受多个任意参数或者一次返回多个数据
      • 格式字符串—格式化字符串后面的()本质上就是一个元组
        • print(“%s 的年龄是 %d” % (“xiaoming”, 18))
        • 改进输出方式
          info_tuple = ("xiaoming", 18, 1.80)
          info = "%s 的年龄是 %d, 身高为%d" % info_tuple
          print(info)
          
      • 让列表不可以被修改保证数据安全
    • list和tuple的区别
      • 元组的定义本质上是靠逗号完成的 tuple = 1, 其实也是元组。tuple = (1, )也是元组。但如果是tuple = (1)则其实是int
      • del对于元组中的多个标签会同时完成删除
      • 元组倾向于存储固定不变的数据
      • 元组不适合循环遍历的原因是因为,元组中存放的数据几乎都是不同类型的,循环遍历的前提是对一类型数据进行相同的操作
    • 元组和列表之间的转换
      • 使用list函数可以把元组转换成列表
        • list(元组)
      • 使用tuple函数可以把列表转换成元组
        • tuple(列表)
  • 字典—存储多个数据
    • 定义
    • 字典使用键值对存储数据,键值对之间使用,隔开
      • 键key是索引
      • 值value是数据
      • 键和值之间使用:分隔
      • 键必须是唯一的
      • 值可以取任何数据类型,但键只能是字符串,数字,元组
      xiaoming = {
          "name": "xiaoming",
          "age": 18,
          "gender": True,
          "height": 1.80
      }
    
    • 字典常用于描述个人特征信息等
    • 常用方法
      xiaoming_infor = {
      "name" : "xiaoming",
      "age" : 18
      }
      #取值
      print(xiaoming_infor["name"])
      #添加/修改
      xiaoming_infor["nation"] = "China"
      print(xiaoming_infor["nation"])
      xiaoming_infor["age"] = 22
      print(xiaoming_infor["age"])
      #删除
      xiaoming_infor.pop("nation")
      #统计键值对的数量
      print(len(xiaoming_infor))
      #合并键值对
      tem_infor={
          "height":160
      }
      xiaoming_infor.update(tem_infor)
      #但是如果合并字典中存在先前的key则会导致覆盖
      #清空字典
      xiaoming_infor.clear()
    
    • 字典遍历
      xiaoming_infor = {
          "name" : "xiaoming",
          "age" : "18",
          "qq" : "1233"
      }
      # k 是每次循环拿到字典的key
      for k in xiaoming_infor:
          print("%s - %s" % (k, xiaoming_infor[k]))
    
    • 与列表的区别
      • 列表是有序的对象集合
      • 字典是无序的对象集合,字典中我们更关心保存哪一类数据而不是数据保存的先后顺序,因此定义字典的顺序和print输出的键值对不一定一致
    • 字典与列表的应用场景
      • 使用多个键值对,存储描述一个物体的相关信息–描述更复杂的数据信息
      • 将多个字典放在一个列表中,再进行遍历,在循环体内部对每个字典进行特定的操作
      infor_list = [
          {
          "name" : "xiaoming",
          "age" : "18",
          "qq" : "1233"
          },
          {
          "name" : "zhangsan",
          "age" : "29",
          "qq" : "3123"
          }
      ] 
      # card_list 是每次循环拿到的key
      for card_list in infor_list:
          print(card_list)
      
  • 字符串—表示文本信息
    • 定义
      • 一对双引号和单引号都可以定义字符串
      • 大多数都用双引号,在文本中本来就存在双引号时—‘my name is “HR7”’
          # c 字符串的每一个字母进行输出
          str = "hello world"
          for c in str:
              print(c)
          print(str[0])   #索引输出
      
    • 字符串的常用操作
          str = "hello world"
          # 统计长度
          print(len(str))
          # 统计某一个子字符串出现的次数
          print(str.count("llo"))
          # 判断子字符串所在的位置---取出子字符串首字母位置
          print(str.index("llo")) # 取索引方法
          # 判断字符串是否 只 包含空格---\t\r\n也是空格
          print(str.isspace())
          # 判断字符串中只包含数字
          print(str.isdecimal()) # 开发的大多数使用这个方法 
          print(str.isdigit()) # 可以判断阿拉伯数字和unicode字符串---不能用键盘直接输入的数字(1)
          print(str.isnumeric()) # 可以判断汉字的数字---判断数字范围更大
              # 上面三个都不能判断小数
          # 检查字符串是否以指定字符串开头
          str.startswith("hello")
          # 检查字符串是否以指定字符串结尾
          str.endswith("world")
          # 查找指定字符串---读取索引位置
          str.find("llo") # 与index不同---如果指定字符串不在,index会报错,find返回-1
          # 将字符串中的old_str替换成new_str,如果num指定,则替换不超过num次
          new_str = str.replace(old_str, new_str, num=string.count(old))
          #该方法不会修改原有字符串的样式,会返回一个新的字符串
          # 三种文本对齐方法
          str.ljust(width) # 返回一个原字符串左对齐,并用空格填充至长度为width的新字符串
          str.rjust(width) # 返回一个原字符串右对齐,并用空格填充至长度为width的新字符串
          str.center(width) # 返回一个原字符串居中,并用空格填充至长度为width的新字符串
          # 去除字符串空白字符
          str.lstrip() # 删除字符串开始的空白字符
          str.rstrip() # 删除字符串结尾的空白字符
          str.strip()
          # 字符串的拆分和链接
          str.split(str="", num) # 以str为分隔符拆分old_str,如果num有指定值,则仅分隔num+1
              # 使用str指定分隔符拆分成为一个列表,str包括\r\n\t
          分隔符.join(seq) # 以指定分隔符将seq中所有元素合并成为一个新的字符串
              # 需求
              # 1.将字符串中的空白字符全部去掉
              # 2.再使用空格作为分隔符拼接成一个整齐的字符串
              str = "num1\tnum2\tnum3\t\nnum4\t"
              print(str)
              # 拆分
              list = str.split()
              print(list)
              # 新合并
              new_str = " ".join(list)
              print(new_str)
      
    • 切片操作详解—适用于字符串、列表、元组
      • 切片使用索引值来划分范围

      • 列表和元组都是有序集合,可以通过索引值来得到对应数据

      • 字典是一个无序集合,使用键值保存数据

      • 切片相关物理关系图如下所示
        在这里插入图片描述

      • 字符串的切片方式

        • 字符串[开始索引:结束索引:步长]
      • 需要注意的是切片并不包含结束索引所对应的值

      • 切片本质区间是一个左闭右开的范围

      • 步长为正则向右切,步长为负则向左切

      • 一个例子

          str = "0123456789"
          # 截取从2-5位置的字符串
          task = str[2:6]
          print(task)
          # 截取从2-末尾的字符串
          task = str[2:]
          print(task)
          # 截取从开始-5位置的字符串
          task = str[:6]
          print(task)
          # 截取完整字符串
          task = str[:]
          print(task)
          # 从开始位置,每隔一个字符截取字符串
          task = str[::2]
          print(task)
          # 从索引1开始,每隔一个字符截取一个
          task = str[1::2]
          print(task)
          # 截取从2-末尾 -1 的字符串
          task = str[2:-1]
          print(task)
          # 截取字符串末尾两个字符
          task = str[-2:]
          print(task)
          # 字符串逆序
          task = str[-1::-1]
          print(task)
      
  • 公共方法—列表、元组、字典、字符串都可以使用的方法
    • py的内置函数—不用import就可以使用的函数
      • define list = [1,2,3]
      • len(item)—计算容器中元素的个数 len(a)
      • del(item)—删除变量 del(a[1])
      • max(item)—返回容器中最大值 max(a)
      • min(item)—返回容器中最小值 min(a)
      • cmp(item1,item2)—比较两个值, -1小于 0等于 1大于
      • 字符串符合的规则 “0”<“A”<“a”
      • 切片使用索引值来确定范围,列表元组都是集合可以通过索引值获得对应数据,字典是一个无序集合使用键值对保存数据—因此字典不能切片
      • 运算符
        • 加号就是拼接,乘号就是重复—适用于字符串、列表、元组但字典不可以使用
          • 加号会产生新的变量而extend方法是直接修改原始数据结构的结果
        • in是验证元素是否存在—3 in (1,2,3)—适用于字符串、列表、元组、字典
        • not in 同上
        • 各种大小比较符用于元素的比较—适用于字符串、列表、元组
      • 完整的for循环语法
          for 变量 in 集合:
              循环体代码
          else:
              没有通过break退出循环,循环结束后,会执行代码,只有for中完全遍历才能执行else中的code
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python编程语言中,有四种常用的集合数据类型,它们分别是列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。列表是一种有序和可更改的集合,允许重复的成员。元组是一种有序且不可更改的集合,也允许重复的成员。字典一个无序、可变且有索引的集合,其中没有重复的成员。而集合是一种无序和无索引的集合,没有重复的成员。这四种集合数据类型在Python中都有着不同的特点和用途。 在Python中,列表元组字符串都属于序列,它们的元素都可以通过编号进行访问。而字典则属于映射,其中的元素是以键值对的形式存在的。集合则不属于序列或映射中的任何一种,它是一种独立的数据类型,用于存储一组不重复的元素。 总结起来,Python中的列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)都是常用的集合数据类型,它们各自有着不同的特点和用途。列表是有序和可更改的集合,元组是有序且不可更改的集合,字典是无序、可变且有索引的集合,集合是无序和无索引的集合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [浅谈python四种集合数据类型—【列表元组、集合、字典】](https://blog.csdn.net/QWERTYzxw/article/details/121479048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python 元组、集合与字典](https://download.csdn.net/download/weixin_38603219/13752298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值