Python高级变量类型

本文详细介绍了Python的四种主要数据类型:列表、元组、字典和字符串,包括它们的特点、操作方法和常见用途。列表支持动态增删改查,元组不可变,字典是无序的键值对集合,字符串是一串字符。此外,还讲解了切片、公共方法和运算符的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python高级变量类型

  • 列表 List
  • 元组 Tuple
  • 字典 Dictionary
  • 字符串 String
  • 公共方法 Common
列表 List
  • 细节
  • List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组
  • 专门用于存储 一串 信息
  • 列表用 [] 定义,数据 之间使用 , 分隔
  • 列表的 索引0 开始
  • 索引** 就是数据在 列表 中的位置编号,索引 又可以被称为 下标
  • 当索引超出范围时,会报错IndexError: list index out of range

  • list.append(元素) 末尾加数据
    list.extend(list2) 将list2列表添加到list后
    + 很神奇 包括上面两种方法

  • list.remove(元素) 删除list中第一个相同的元素
    list.clear() 删除元素 list本身还存在
    list.pop() 删除末尾数据
    list.pop(x) 删除list[x] 数据
    del list 直接将list从内存中删除,与clear有着本质不同

  • list[x] = a 将list中第x+1的数据修改为a

  • list.sort() 升序排序
    list.sort(reverse=True) 降序排序
    list.reverse() 逆序、反转
  • 切片
    [start:en:step] 从[start,end) 左闭右开 step为步长
    step 正 表示从左往右 step 负 表示从右往左
  • 列表推导式
    [元素操作 条件] 例:[x*x for x in range(1,20) if x%2 == 0] 将[1,20)内偶数作为列表元素
    列表推导式实质上是将for in 遍历按照顺序写在一行中

元组 Tuple
元组定义好是常量,之后不可变

  • 细节
    1 Tuple(元组)与列表类似,不同之处在于元组的 元素不能修改
    2 元组 表示多个元素组成的序列
    3 元组 在 Python 开发中,有特定的应用场景
    4 用于存储 一串 信息数据 之间使用 , 分隔
    5 元组用 () 定义
    6 元组的 索引0 开始
    7 索引 就是数据在 元组 中的位置编号
例:定义
info_tuple = (50, )  # 元组中 只包含一个元素时,需要在元素后面添加逗号

  • 元组本身不可随意增加数据,但是可以通过切片,更新原先元组,实现数据的增加
a = ('北','京','迎','你',)
print(a)   # ('北', '京', '迎', '你')
a = a[0:2]+('欢',)+a[2:]
print(a)   # ('北', '京', '欢', '迎', '你')

注意 这里的切片更新,一定要明白切片从0开始,左闭右开,同时中间加的数据,要以元组的形式添加,这里添加一个元素,要用元组,同时一个元素后面要加,
一般公式:

a = (1,2,3,4,5,6,7,8)
print(a)  # (1, 2, 3, 4, 5, 6, 7, 8)
a = a[:3]+(99,99,)+a[3:]
print(a)  # (1, 2, 3, 99, 99, 4, 5, 6, 7, 8)
# a = a[:x]+(元素1,元素2,元素3...)+a[x:]   在元组a的第x+1位置添加元素

  • 可以照搬上面的切片思想,删除元素更新元组
b = (1,2,6,7,8,3,4,5)
print(b)     # (1, 2, 6, 7, 8, 3, 4, 5)
b = b[:2]+b[5:]
print(b)     # (1, 2, 3, 4, 5)
del b        #从内存中删除b 再次调用会报错 

  • 元组一经定义,作为常量存储,不可以对其进行修改 以上的增加和删除都是建立在更新元组的基础上,而不是修改它
  • 遍历
for x in info_tuple:
   	print(x)   # 遍历时的x表示的就是元组中的元素 可以直接操作
  • 其他重点操作
c = (1,1,1,1,2,3,4,5)
print(c.count(1))    #  4  返回元组中含有元素1的个数
print(c.index(1))    #  0  返回元素值为1的下标,含有多个,则返回第一个
  • 重点
    1 当成一个整体,作为函数的参数或者时返回值,一个函数可以通过元组,返回多个值
    2 同时,元组和列表之间可以相互转换
字典 Dictionary
  • 细节
    1.字典和列表之间的区别:
    列表是 有序 的对象集合
    字典是 无序 的对象集合
    2.字典用**{}**定义
    3.定义要求
    字典使用 键值对 存储数据,键值对之间使用 分隔
    • key 是索引
    • value 是数据
    • 之间使用 : 分隔
    • 键必须是唯一的
    • 可以取任何数据类型,但 只能使用 字符串数字元组
例:
xiaoming = {"name": "小明",
            "age": 18,
            "gender": True,
            "height": 1.75}
  • 增删改查
xiaoming.clear() 删除内部元素 但是本身字典依旧存在和del不一样    
xiaoming.items()  以键值对形式返回dict_items([('name', '小明'), ('gender', True)])
xiaoming.keys()  返回值为key的列表 
xiaoming.pop(key)   删除key值对应的键值对         
xiaoming.values()   返回值为value的列表
xiaoming.popitem()  删除表尾键值对
  • 循环遍历
# for 循环内部使用的 `key 的变量` in 字典
for k in xiaoming:  # 这里的k值是在字典中按照key值进行遍历的
    print("%s: %s" % (k, xiaoming[k]))  
  • 一定要注意字典是通过[]取值的,在循环的时候,需要用[]调用
  • 在列表中的字典循环
books  = [
   {
       'name':'Tom',
       'age':21,
       'country':'China'
   },
   {
       'name': 'Jack',
       'age': 23,
       'country': 'USA'
   },
   {
       'name': 'Lisa',
       'age': 24,
       'country': 'Us'
   }
]
for item in books:   # 输出所有信息
   print(item['name'],item['age'],item['country'])

运行结果:
在这里插入图片描述

这里的列表中套着字典,用for循环,item表示的是books中的每个元素,二每个元素是字典,针对字典是用[]表示,所以用item['name']表示即可

字符串
  • 细节
  • 字符串 就是 一串字符,是编程语言中表示文本的数据类型
  • 在 Python 中可以使用 一对双引号 " 或者 一对单引号 ' 定义一个字符串
    • 虽然可以使用 \" 或者 \' 做字符串的转义,但是在实际开发中:
      • 如果字符串内部需要使用 ",可以使用 ' 定义字符串
      • 如果字符串内部需要使用 ',可以使用 " 定义字符串
  • 可以使用 索引 获取一个字符串中 指定位置的字符,索引计数从 0 开始
  • 也可以使用 for 循环遍历 字符串中每一个字符
str = "Hello World"
for x in str:
    print(x,end="")   # 输出 Hello World 
for a in str:
    print(a)    # 每行输出一个元素  
# print() 函数调用结束时会自动换行,可以用end="" 让其在结尾时不换行
  • 常用函数
  1. 判断类型 - 9
方法说明
string.isspace()如果 string 中只包含空格,则返回 True
string.isalnum()如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
string.isalpha()如果 string 至少有一个字符并且所有字符都是字母则返回 True
string.isdecimal()如果 string 只包含数字则返回 True,全角数字
string.isdigit()如果 string 只包含数字则返回 True,全角数字\u00b2
string.isnumeric()如果 string 只包含数字则返回 True,全角数字汉字数字
string.istitle()如果 string 是标题化的(每个单词的首字母大写)则返回 True
string.islower()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True
string.isupper()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True
  1. 查找和替换 - 7
方法说明
string.startswith(str)检查字符串是否是以 str 开头,是则返回 True
string.endswith(str)检查字符串是否是以 str 结束,是则返回 True
string.find(str, start=0, end=len(string))检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
string.rfind(str, start=0, end=len(string))类似于 find(),不过是从右边开始查找
string.index(str, start=0, end=len(string))跟 find() 方法类似,不过如果 str 不在 string 会报错
string.rindex(str, start=0, end=len(string))类似于 index(),不过是从右边开始
string.replace(old_str, new_str, num=string.count(old))把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次
  1. 大小写转换 - 5
方法说明
string.capitalize()把字符串的第一个字符大写
string.title()把字符串的每个单词首字母大写
string.lower()转换 string 中所有大写字符为小写
string.upper()转换 string 中的小写字母为大写
string.swapcase()翻转 string 中的大小写
  1. 文本对齐 - 3
方法说明
string.ljust(width)返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width)返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.center(width)返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
  1. 去除空白字符 - 3
方法说明
string.lstrip()截掉 string 左边(开始)的空白字符
string.rstrip()截掉 string 右边(末尾)的空白字符
string.strip()截掉 string 左右两边的空白字符
  1. 拆分和连接 - 5
方法说明
string.partition(str)把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
string.rpartition(str)类似于 partition() 方法,不过是从右边开始查找
string.split(str="", num)以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格
string.splitlines()按照行(’\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表
string.join(seq)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
公共方法 Common
  • 内置函数
函数描述备注
len(item)计算容器中元素个数
del(item)删除变量del 有两种方式
max(item)返回容器中元素最大值如果是字典,只针对 key 比较
min(item)返回容器中元素最小值如果是字典,只针对 key 比较
  • 切片
    适用的数据类型为列表 元组 字符串
  • 细节
    1 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串
    2 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
    3 字典 是一个 无序 的集合,是使用 键值对 保存数据,不可以使用切片
  • 使用
[开始索引:结束索引:步长]   # 指定的区间属于左闭右开型 `[开始索引,  结束索引)

1 从头开始,开始索引,数字可以省略,冒号不能省略
2 到末尾结束,结束索引,数字可以省略,冒号不能省略
3 步长默认为 1,如果连续切片,数字和冒号都可以省略
4 正序 步长为正数,开始索引小于结束索引
5 倒叙 步长为负数,开始索引大于结束索引

num_str = "0123456789"

# 截取从 2 ~ 5 位置 的字符串
print(num_str[2:6])

# 截取完整的字符串
print(num_str[:])   

# 从开始位置,每隔一个字符截取字符串
print(num_str[::2])

# 截取字符串末尾两个字符 重点
print(num_str[-2:]) 

# 字符串的逆序(面试题)
print(num_str[::-1])

# 截取从5-1的字符串  注意左闭右开
print(num_str[5:0:-1])
  • 运算符
运算符Python 表达式结果描述支持的数据类型
+[1, 2] + [3, 4][1, 2, 3, 4]合并字符串、列表、元组
*[“Hi!”] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]重复字符串、列表、元组
in3 in (1, 2, 3)True元素是否存在字符串、列表、元组、字典
not in4 not in (1, 2, 3)True元素是否不存在字符串、列表、元组、字典
> >= == < <=(1, 2, 3) < (2, 2, 3)True元素比较 按照对应字符ASCII比较字符串、列表、元组

小白一个,希望可以和大家一起学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Philo`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值