随笔 - 65  文章 - 0 评论 - 0 阅读 - 28638
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

一. 数据类型见下图:

数据类型 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]
l2 = [3,4]
print(l1+l2)

a = (1,2)
b = (4,5)
print(a+b)

   
乘法叠加 s= "*"*10 print(l2*3) print(b*3)    
解包

s = "www"
a1, a2 = s

a,b = [1,2] x, y = (10, 20)    
组包    

x = 1
y = 2
data = x,y

   
交换两个变量的值     

x = 10
y = 20
# y, x = (x, y)  

#元组可以省掉括号
x,y = y,x
print(x,y) # 20 10

   
修改元素  

l = [1,2,3]
del l[-1]

元组的元素只能读,不能修改。通常情况下,元组用于保存无需修改的内容。

# 集合,可以删除/添加成员,但是没有下标,自然也就谈不上del删除成员了
s = {1, 2, 3, 4}
ret = s.pop() # 删除第一个成员
print(ret, s)

del dictname["key1"]

说明

1同一集合中,只能存储不可变的数据类型,包括整形、浮点型、字符串、元组,无法存储列表、字典、集合这些可变的数据类型,否则 Python 解释器会抛出 TypeError错误。

2当创建的元组中只有一个字符串类型的元素时,该元素后面必须要加一个逗号(,)如:data=1,。否则 Python 解释器会将它视为字符串。

3从上面的操作的结果可以按成员是否可以修改,把数据类型进行分类了:

可变类型:list, dict, set
不可变类型:int, float, bool, str, tuple

4数据类型的术语:

基本类型:int,float,bool,str
容器类型【可以存放多个值】,也叫复合类型【可以存放不同类型的值】:list,tuple,set,dict,str【属于容器类型,只能存放一种数据类型】

序列类型:str,list,tuple

二. 数据类型转换

1. 类型自动转换

自动转换,也叫隐式转换,是属于动态编程语言里面的一种特性。

动态编程语言: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))

 

posted on   大明花花  阅读(133)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示