一. 数据类型见下图:
数据类型 | str | list | tuple |
set 集合的成员唯一性(去重) |
dict |
声明方式 | s= "hello world" | data = [] |
(element1, element2, ..., elementn) 声明时可以省略小括号 |
空集:set() {element1,element2,...} |
dictname = {'key':'value1', 'key2':'value2', ...} |
索引取值 | 序列类型数据[下标] | 序列类型数据[下标] | 序列类型数据[下标] | 集合中的元素是无序的,因此无法向列表那样使用下标访问元素。Python 中,访问集合元素最常用的方法是使用循环结构,将集合中的数据逐一读取出来 | |
切片操作 【不改变类型】 |
s[start : end : step] 左闭右开 步进值默认为1,从左往右取 -1:从右往左取 |
s[start : end : step] | s[start : end : step] | ||
判断成员是否存在 | print("hello" in s) | print("hello" in data) | print("hello" in l) | print("price" in dictname) | |
相加拼接 |
s = "hello"+" world" s1="hello" s=f"{s1} {s2}" |
l1 = [1,2] |
a = (1,2) |
||
乘法叠加 | s= "*"*10 | print(l2*3) | print(b*3) | ||
解包 |
s = "www" |
a,b = [1,2] | x, y = (10, 20) | ||
组包 |
x = 1 |
||||
交换两个变量的值 |
x = 10 #元组可以省掉括号 |
||||
修改元素 |
l = [1,2,3] |
元组的元素只能读,不能修改。通常情况下,元组用于保存无需修改的内容。 |
# 集合,可以删除/添加成员,但是没有下标,自然也就谈不上del删除成员了 |
del dictname["key1"] |
说明
1同一集合中,只能存储不可变的数据类型,包括整形、浮点型、字符串、元组,无法存储列表、字典、集合这些可变的数据类型,否则 Python 解释器会抛出 TypeError
错误。
从上面的操作的结果可以按成员是否可以修改,把数据类型进行分类了:
可变类型:list, dict, set
不可变类型:int, float, bool, str, tuple
4数据类型的术语:
基本类型:int,float,bool,str
容器类型【可以存放多个值】,也叫复合类型【可以存放不同类型的值】:list,tuple,set,dict,str【属于容器类型,只能存放一种数据类型】
序列类型:str,list,tuple
自动转换,也叫隐式转换,是属于动态编程语言里面的一种特性。
动态编程语言:python,php,javascript
静态编程语言:java,go,C/C++
所谓的自动转换,实际上就是python解释器在遇到运算符需要进行运算符的,因为当前运算符的运行规则要求,则自动把参与运算的数据进行类型转换。
# data = bool + int data = True + 2 print(data) # data = bool + float data = True + 3.14 print(data) # data = int + float data = 3 + 3.5 print(data)
2. 类型强制转换
# 纯数字组成的字符串才能转成整型 i = int("3") print(i,type(i)) # 3 <class 'int'> # 小数转换成字符串 s = str(3.14) print(s,type(s)) # 3.14 <class 'str'> # 布尔值转换成整型 x = int(True) print(x, type(x)) # 1 <class 'int'> y = bool(0) print(y, type(y)) # False <class 'bool'> a = float(True) print(a, type(a)) # 1.0 <class 'float'> a = float("3.15") print(a, type(a)) # 3.15 <class 'float'> # # 以下错误示例: # a = float("3.15元") # print(a, type(a)) # ValueError: could not convert string to float: '3.15元'
3. 容器类型数据强制转换
# 列表可以通过转换数据类型为集合,可以去除重复的成员 data = [1,3,4, 5, 3, 2, 1] print(data, type(data)) # [1, 3, 4, 5, 3, 2, 1] <class 'list'> ret = set(data) print(ret, type(ret)) # {1, 2, 3, 4, 5} <class 'set'> data = list(ret) print(data, type(data)) # [1, 2, 3, 4, 5] <class 'list'> # 字典转列表,可以直接提取字典的所有key出来 data = {"A":1, "B":2} ret = list(data) print(ret) # ['A', 'B'] # 元组可以通过转换数据成列表,修改成员的排列位置 old_data = (1, 2, 3, 4) data = list(old_data) data[1], data[2] = data[2], data[1] new_data = tuple(data) print(new_data) # (1, 3, 2, 4)
注:
1. 字典转换成二级等长容器
#在python给字典内置了一个items可以让字典直接转换成二级等长容器 print( data.items() ) # [('id', 1), ('title', '人月神话'), ('pubdate', '2001-01-01')] #结合items,我们可以直接在for循环同时提取字典的所有成员的键值对出来 data = {"id": 1, "title": "人月神话", "pubdate": "2001-01-01"} for key, value in data.items(): print("key=%s, value=%s" % (key, value))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY