python 数据类型和数据容器

python数据类型主要分为以下七大类:
Numbers(数字) Boolean(布尔) String(字符串) List(列表) Tuple(元组) Dictionary(字典) Set(集合)


Python 的七个标准数据类型中:
不可变数据类型(4 个):Number(数字)、Boolean(布尔)、String(字符串)、Tuple(元组);
可变数据类型(3 个):List(列表)、Dictionary(字典)、Set(集合)。


其中,以下几个也叫做数据容器:
列表(list)、元组(tuple)、字符串(str)、集合(set,frozenset)、字典(dict)


1、数字类型(Numbers)
python的数字类型包括:
int(长整型) float(浮点型) complex(复数)


2、布尔类型(Boolean)
布尔类型是与逻辑相关一种数据类型,只有两个值:True(真)与False(假)

其中布尔类型值可以相加,但一旦相加,类型就会转换为int类型

点击查看代码
a = True
b = False
print(a + b)   # 结果为1 


3、字符串类型
3.1、字符串特点
不可变性: 字符串是不可变的,一旦创建,就不能直接修改其中的字符。
有序性: 字符串中的字符是有序排列的,可以通过索引访问和操作字符。

3.2、字符串常用操作

点击查看代码
# 定义两个字符串
char1 = "abc145f"
char2 = "hg37ftg"

# 1、索引
print(char2[2])   # 结果是3,索引下标是从0开始

# 2、切片
print(char2[2:6:2])  # 结果是3f,切片格式为[起始下标:结束下标:步长]

# 3、字符串拼接, 
  # 使用 + 运算符进行字符串拼接
  print(char2 + char1)   # hg37ftgabc145f

  # 使用join 进行拼接
  print(','.join(char2))  # h,g,3,7,f,t,g
  
# 这里注意join 和 + 的区别:
join() 可以将元素按照分隔符「拼接」成新的字符串
格式:
string.join(iterable)
参数iterable:必选,必须是可迭代对象,只能传一个参数,参数可以是字符串,列表,元组,字典。

join() 和+都可以拼接字符串,但 join() 的拼接「效率」比+要快很多:
首先,字符串是「不可变」的,拼接字符串得开辟新的内存空间,用来存储拼接后的字符串。

+ 在拼接字符串时,会先开辟内存空间,把拼接后的字符串放进去,每一个 + 都会开辟一次内存空间。

join() 拼接字符串时,会提前算好需要开辟多大的空间,然后申请内存,把拼接后的字符串放进去,无论拼接多少字符串,都只开辟一次内存空间。

# 4、len(): 获取字符串的长度。

# 5、upper() 和 lower(): 将字符串转换为大写或小写。
char1.upper()
char1.lower()

# 6、replace(): 替换子字符串
print(char2.replace('hg', 'gh')) # gh37ftg

7、字符串还提供了 split()、find()、startwith()、endwith()等方法
  


4、列表类型(list)
4.1、列表特点
有序性:列表的中的元素是有序排列的,可以通过索引访问和凑在哦元素
可变性:列表是可变的,可以通过索引直接修改元素的值
支持混合数据类型:同一个列表中可以包含不同的数据类型

4.2、列表常用操作

点击查看代码
# 定义一个列表
my_list = [1, 3, 'a', 'b', True]

# 1、添加元素
  # append():在列表末尾 添加一个元素
  my_list.append(7)
  print(my_list)   # [1, 3, 'a', 'b', True, 7]
  # extend():合并两个列表
  my_list.append([7, 'c'])
  print(my_list + [7, 'c'])  # + 拼接两个列表
  print(my_list)  # [1, 3, 'a', 'b', True, 7, 'c']
  # insert():在指定位置添加元素
  my_list.insert(2, 'd')
  print(my_list)  # [1, 3, 'd', 'a', 'b', True]

# 2、删除元素
  # remove():删除第一个匹配到的元素
  my_list.remove('a')
  print(my_list)   # [1, 3, 'b', True]
  # pop():删除并返回指定位置的元素,如果不传索引参数,默认是删除最后一个元素
  result = my_list.pop(3)
  print(my_list)  # [1, 3, 'a', True]
  print(result)   # b

# 3、索引和切片
print(my_list[2])   # 结果是a,索引下标从0开始
print(my_list[:3])  # [1, 3, 'a'],切片格式为[起始下标:结束下标:步长],起始下标可以不写,默认从0开始,步长也可以不写,默认为1

# 4、查找元素在列表中第一个匹配位置的下表
print(my_list.index('b'))   # 结果是3

# 5、count()统计元素在列表中出现的次数

# 6、反转列表中的元素
my_list.reverse()
print(my_list)   # [True, 'b', 'a', 3, 1]

# 7、sort()对列表中元素进行排序,注意排序时列表中元素类型要相同,否则会报错
my_list.sort()
print(my_list)   # TypeError: '<' not supported between instances of 'str' and 'int'


5、元组类型(tuple)

5.1、元组特点
有序性:列表的中的元素是有序排列的,可以通过索引访问元素
不可变性:元组是不可变的,一旦创建,就不能通过索引直接修改元素的值
支持混合数据类型:同一个列表中可以包含不同的数据类型

5.2、元素常用操作
元组常用操作与列表类似,但有一些关键的区别需要注意:

  • 元组是不可变的,不能进行修改、添加和删除操作
  • 性能优势:在不需要改变元素的情况下,元组性能优于列表
  • 作为字典键:元组因为不可变,所以可以作为字典键,而列表不可以
  • 解包操作:元组还支持解包操作,例如变量赋值
    my_tuple = (1, 2, 3)
    a, b, c = my_tuple
    注意解包赋值时元组元素的数量必须和变量的数量一致,否则会报错


6、集合(set、frozenset)
6.1、集合特点

  • 无序性:集合中的元素都是无序排列的,不能通过索引访问和操作下标值
  • 不重复性:集合中的元素是唯一的,不允许重复*
  • 集合分为可变集合(set)和不可变集合(frozenset)

6.2、集合常用操作

点击查看代码
# my_set = {1, 2, 'a', 'b'}

# 1、添加元素
# add() 向集合中添加单个元素
my_set.add(4)
print(my_set)  # {1, 2, 4, 'a', 'b'}

# update(iterable) 向集合中添加多个元素,参数必须传入可迭代对象,如元组、列表等,如果是字典,只会把key加入到集合中
my_set.update({
    "name": "小明",
    "age": 22
})
print(my_set)  # {'a', 1, 2, 'name', 'age', 'b'}

# 2、删除元素
# remove() 删除指定元素,如果元素不存在,会报错KeyError
my_set.remove('a')
print(my_set)   # {1, 2, 'b'}
# discard()  删除指定元素,如果元素不存在,不会报错KeyError
my_set.discard('a')
print(my_set)  # {1, 2, 'b'}
# pop() 没有参数,会随机删除并返回一个元素,如果元素不存在,会报错KeyError
my_set.pop()
print(my_set)

注意:创建空集合只能通过set()方式,例如my_set = set(),不能通过my_set = {} ,这是字典


7、字典(dict)
7.1、字典特性

  • 无序性:字典是无需的
  • 可变性:字典是可变的,用于存储键值对

7.2、字典常用操作

点击查看代码
my_dict = {
    'name': '小明',
    'age': 22
}

# 1、获取和修改键对应的值
# 获取值
my_dict['name]  # 如果键不存在会报错
my_dict.get('name')   # 如果键不存在不会报错

# 修改值
my_dict['name'] = '小兰'

# 2、添加和删除键值对
my_dict['gender'] = ''
del my_dict['gender']

# 3、update()方法
# update()方法用于将一个字典的内容更新到另一个字典中
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}

dict1.update(dict2)
print(dict1)  # 输出: {'a': 1, 'b': 3, 'c': 4}

注意:从Python 3.9开始,update()方法还可以接受关键字参数来更新字典,这种方式更加灵活。
dict1 = {'a': 1, 'b': 2}
dict1.update(c=5, d=6)
print(dict1)  # 输出: {'a': 1, 'b': 2, 'c': 5, 'd': 6}


# 其他常用方法
keys():返回字典中所有的键
values():返回字典中所有的值
items():返回字典中所有键值对

posted @   有形无形  阅读(66)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示