Python 全栈开发二 python基础 字符串 字典 集合

一.字符串

1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串。

1 >>ch = "wallace"
2 >>ch1 = ‘wallace‘
3 >>ch2 = ‘‘‘
4 wallace
5 wallace
6 wallace
7 ‘‘‘
8 #以上三种引号都可以定义一字符串,
9 #三引号定义的字符串可以换行

注意:字符串是不可变的数据类型,关于可变与不可变将会在后文解释。

2,转义字符

在python中有一些字符是有转义功能的,一般情况下是指\加上一些字符,在使用的时候需要注意:

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\‘ 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

例如:

1 >>print(‘a\na‘)   #这里的\n表示的就是换行
2 a
3 a

3.字符串的常用方法:

 1 >>st = ‘   Wallace waNg   ‘
 2 >>st2 = ‘wallace 123‘
 3 >>st3 = ‘123‘
 4 >>print(st.index(‘w‘))#根据提供的元素返回索引位置
 5 11
 6 >>print(st.count(‘a‘))#返回对应元素的个数
 7 3
 8 >>print(st.isdigit()) #只有全部是数字的时候才返回Ture
 9 Flase
10 >>print(st2.isdigit())#判断是否全为数字组成的字符串
11 Flase
12 >>print(st3.isdigit())
13 True
14 >>print(‘{}{}{}‘.format(st,st2,st3))  #字符串拼接
15    Wallace waNg   wallace 123123
16 >>print(‘{n},{n1},{n2}‘.format(n = st,n1 = st3,n2 = st2))
17    Wallace waNg   ,123,wallace 123
18 >>print(‘ ‘.join((st,st2,st3)))   #字符串拼接,可以用一些符号进行拼接
19    Wallace waNg    wallace 123 123
20 >>print(st.ljust(50,‘1‘))       #给字符串设置宽度,并且可以在一边添加字符 rjust
21    Wallace waNg   11111111111111111111111111111111
22 >>print(st.center(50,‘*‘))      #设置宽度,并对字符串居中
23 ****************   Wallace waNg   ****************
24 >>print(st.replace(‘a‘,‘b‘,1))   #替换字符,可以选择替换次数
25    Wbllace waNg
26 >>print(st.strip())              #去除字符串两边的空格和换行  rstrip(), lstrip()
27 Wallace waNg
28 >>print(st.find(‘a‘))             # 返回字符的索引位置
29 4
30 >>print(st.endswith(‘a‘))     #判断是否为该字符结尾  startswith  开头
31 Flase
32 >>print(st.split(‘ ‘))       #分割字符,返回一个列表
33 [‘‘, ‘‘, ‘‘, ‘Wallace‘, ‘waNg‘, ‘‘, ‘‘, ‘‘]
34 >>print(st.capitalize())     #全部变为小写
35    wallace wang
36 》》print(st.encode(encoding=‘gbk‘))   #转换编码方式
37 b‘   Wallace waNg   ‘
38 >>print(st.expandtabs(tabsize=20))  #将tab符号转换为空格,一个tab有8个空格
39    Wallace waNg
40 >>print(st3.isalnum())     #与isdigit  类似
41 >>print(st.isalpha())     #判断全为字母
42 >>print(‘1A‘.isdecimal())  #检查字符串是否只包含十进制字符
43 >>print(‘2a‘.isidentifier())    #判读是不是一个合法的标识符,即变量名
44 >>print(st2.islower())     #判断是否全为小写
45 >>print(st2.isupper())    #判断是否全为大写
46 >>print(st2.isnumeric())  #如果字符串中只包含数字字符
47 >>print(st.istitle())   #判断是否为标题
48 >>print(st.title())   #转换为标题
49    Wallace Wang
50 >>print(st.lower())   #全部转换为小写
51    wallace wang
52 >>print(st.upper())   #全部转换为大写
53    WALLACE WANG
54 >>print(st.swapcase()) # 将字符串中大写转换为小写,小写转换为大写
55    wALLACE WAnG   

二.字典

字典是另一种可变容器模型即是一种无序的可变的数据数据类型,且可存储任意类型对象。字典以键值对的形式存储,键(key)和值(value)用:隔开,每个键值对用逗号隔开。

1 >>di = {
2 "username":"wallace"
3 "passward":"qwe123"
4 "age":13
5 "data":[1,3,4]
6 }

#字典的值可以为任意的数据类型
#字典的键未不可变的数据类型

1.字典的CRUD

Create(增加):

 1 >>di = {
 2 "username":"wallace"
 3 "passward":"qwe123"
 4 "age":13
 5 "data":[1,3,4]
 6 }
 7 >>di["create"] = ‘create‘
 8 >>di
 9 {
10 "username":"wallace"
11 "passward":"qwe123"
12 "age":13
13 "data":[1,3,4]
14 "create":"create"
15 }
16 #添加一个键值对

Retrieve(查询)

 1 >>di
 2 {
 3 "username":"wallace"
 4 "passward":"qwe123"
 5 "age":13
 6 "data":[1,3,4]
 7 "create":"create"
 8 }
 9 >>di["username"]  #通过对应的键来找到对应的值
10 "wallace"

Update(更新):

 1 >>di
 2 {
 3 "username":"wallace"
 4 "passward":"qwe123"
 5 "age":13
 6 "data":[1,3,4]
 7 "create":"create"
 8 }
 9 >>di[‘passward‘] = "123"  #根据对应的键来进行修改
10 #如果不存在对应的键则会创建一个键
11 >>di
12 {
13 "username":"wallace"
14 "passward":"123"
15 "age":13
16 "data":[1,3,4]
17 "create":"create"
18 }

Delete(删除):

 1 >>di
 2 {
 3 "username":"wallace"
 4 "passward":"qwe123"
 5 "age":13
 6 "data":[1,3,4]
 7 "create":"create"
 8 }
 9 >>del di[‘age‘]   #选择对应的键,就可以删除
10 >>di
11 {
12 "username":"wallace"
13 "passward":"qwe123"
14 "data":[1,3,4]
15 "create":"create"
16 }
17  

2.字典的常用方法

 1 >>di={‘w‘:123,‘l‘:456,‘x‘:789}
 2 >>di.fromkeys([‘a‘,‘b‘,‘c‘],123)#用给定的键建立新的字典,每一个键默认对应值none(自定义)
 3 {‘a‘: 123, ‘b‘: 123, ‘c‘: 123}
 4 >>di.get(‘r‘,‘我不在这里‘)#取值,存在就返回对应值,不存在默认返回none(可自定义)
 5 ‘我不在这里‘
 6 >>di.setdefault(‘w‘,123)#类似get,存在就返回值,不存在就更新到字典,对应值默认none(可以自定义)
 7 123
 8 >>di.items()#list(di.items()) 查看字典的每一项
 9 dict_items([(‘w‘, 123), (‘l‘, 456), (‘x‘, 789)])
10 >>di.keys()#查看字典的所有键
11 dict_keys([‘w‘, ‘l‘, ‘x‘])
12 >>di.values()#查看字典的值
13 dict_values([123, 456, 789])
14 >>di.pop(‘w‘,123)#指定键,删除对应的值,如果键不存在,可以自定义返回值
15 123
16 >>di.popitem()#随机删除某一项
17 (‘x‘, 789)

三.集合

python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并、交、差、对称差等。sets 支持 x in set、 len(set)、和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。

1.集合的交并差问题

 1 >>> x = set("wallace")
 2 >>> y = set([‘w‘, ‘a‘, ‘l‘, ‘c‘, ‘e‘,‘v‘])
 3 >>> x       #把字符串转化为set,去重了
 4 set([‘w‘, ‘a‘, ‘l‘, ‘c‘, ‘e‘,‘m‘])
 5 >>> y
 6 set([‘w‘, ‘a‘, ‘l‘, ‘c‘,‘e‘,‘v‘])
 7 >>> x & y   #交
 8 set([‘w‘, ‘a‘, ‘l‘,‘c‘,‘e‘])
 9 >>> x | y   #并
10 set([‘w‘, ‘a‘, ‘l‘, ‘c‘, ‘e‘, ‘v‘,‘m‘])
11 >>> x - y   #差
12 set([‘m‘])
13 >>> y - x
14 set([‘v‘])
15 >>> x ^ y   #对称差:x和y的交集减去并集
16 set([‘m‘, ‘v‘])

2.集合的图示

其他情况类似。

3.集合的常用方法

  1 #集合(确定的无序的一组数据)
  2 #基本操作
  3 #创建集合
  4 #空集合
  5 var = set()
  6 print(var,type(var))
  7
  8 #具有数据的集合
  9 var = {‘zhangwang‘,‘zhangbo‘,‘zhanglang‘}
 10 print(var,type(var))
 11
 12 #成员检测
 13 result = ‘zhangbo‘ in var
 14 print(result)
 15
 16 result = ‘zhangsan‘ not in var
 17 print(result)
 18
 19 #集合推导式
 20 var = {‘蚂蚱‘,‘螳螂‘,‘蝈蝈‘,‘蛐蛐‘}
 21
 22 #基本的集合推导式
 23 result = {‘*‘+i+‘*‘ for i in var}
 24 print(result)
 25
 26 #带有判断条件的集合推导式
 27 result = {i for i in var if i != ‘蛐蛐‘}
 28 print(result)
 29
 30 #多循环集合推导式
 31 colors = {‘red‘,‘blue‘,‘pink‘}
 32 sizes = {36,37,38,39}
 33 result = {c + str(s) for c in colors for s in sizes}
 34 print(result)
 35
 36 #集合函数
 37 ‘‘‘
 38 #add()  向集合中添加元素
 39 girls = {‘mf‘,‘sl‘,‘yj‘}
 40 girls.add(‘xf‘)
 41 print(girls)
 42
 43 #pop()  随机删除集合中的一个元素
 44 boys = {‘bd‘,‘zw‘,‘jl‘,‘zy‘}
 45 result = boys.pop()
 46 print(boys)
 47 print(result)
 48
 49 #remove()  删除集合中指定的元素  删除不存在的元素会报错
 50 boys = {‘bd‘,‘zw‘,‘jl‘,‘zy‘}
 51 boys.remove(‘zy‘)
 52 print(boys)
 53
 54 #discard()  删除集合中指定的元素  删除不存在的元素啥都不做
 55 boys = {‘bd‘,‘zw‘,‘jl‘,‘zy‘}
 56 boys.discard(‘zy1‘)
 57 print(boys)
 58
 59 #clear()  清空集合
 60 boys = {‘bd‘,‘zw‘,‘jl‘,‘zy‘}
 61 boys.clear()
 62 print(boys)
 63
 64 #copy()  复制集合
 65 boys = {‘bd‘,‘zw‘,‘jl‘,‘zy‘}
 66 newboys = boys.copy()
 67 print(newboys)
 68 ‘‘‘
 69
 70 #difference() 计算2个集合的差集
 71 dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}
 72 girls = {‘mmf‘,‘lsy‘,‘syj‘}
 73 result = dreamers.difference(girls)# result = a + b
 74 print(result)
 75
 76 #difference_update()  计算2个集合的差集(差集更新操作)
 77 dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}
 78 girls = {‘mmf‘,‘lsy‘,‘syj‘}
 79 dreamers.difference_update(girls)#a = a + b  a += b
 80 print(dreamers)
 81
 82 #union()  并集操作
 83 dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}
 84 girls = {‘mmf‘,‘lsy‘,‘syj‘}
 85 result = dreamers.union(girls)
 86 print(result)
 87
 88 #update()  并集更新操作
 89 dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}
 90 girls = {‘mmf‘,‘lsy‘,‘syj‘}
 91 dreamers.update(girls)
 92 print(dreamers)
 93
 94 #intersection()  计算2个集合的交集
 95 dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}
 96 girls = {‘mmf‘,‘lsy‘,‘syj‘}
 97 result = dreamers.intersection(girls)
 98 print(result)
 99
100 #intersection_update  交集更新操作
101 dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}
102 girls = {‘mmf‘,‘lsy‘,‘syj‘}
103 dreamers.intersection_update(girls)
104 print(dreamers)
105
106 #超集和子集
107 boys = {‘zzy‘,‘yqw‘,‘dw‘,‘wzc‘,‘lyb‘,‘wym‘,‘chy‘}
108 zoudu = {‘wzc‘,‘lyb‘,‘wym‘}
109 girls = {‘lsy‘,‘mmf‘,‘syj‘}
110
111 #issuperset()  检测当前集合是否是另一个集合的超集
112 result = boys.issuperset(zoudu)
113 print(result)
114
115 #issubset()  检测当前集合是否是另一个集合的子集
116 result = zoudu.issubset(boys)
117 print(result)
118
119 #isdisjoint()  检测2个集合是否不存在交集  存在交集 False
120 result = boys.isdisjoint(girls)
121 print(result)
122
123 #symmetric_difference()  对称差集
124 dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}
125 girls = {‘mmf‘,‘lsy‘,‘syj‘}
126 result = dreamers.symmetric_difference(girls)
127 print(result)
128
129 #symmetric_difference_update()  对称更新差集
130 dreamers = {‘ljl‘,‘wc‘,‘xy‘,‘zb‘,‘lsy‘}
131 girls = {‘mmf‘,‘lsy‘,‘syj‘}
132 dreamers.symmetric_difference_update(girls)
133 print(dreamers)
134
135 #冰冻集合
136 #冰冻集合是一种特殊的集合类型,也是集合(集合是列表的话,冰冻集合就是元组)
137 #创建冰冻集合
138 #一般不会创建空的冰冻集合
139 var = frozenset()
140 print(var,type(var))
141
142 #带有数据的冰冻集合
143 var = frozenset((‘qs‘,‘szx‘,‘bjh‘,‘acs‘))
144 print(var,type(var))
145
146 #成员检测
147 result = ‘szx‘ in var
148 print(result)
149
150 #遍历冰冻集合
151 for i in var:
152     print(i)
153
154 #集合推导式(无法得到冰冻集合,可以得到集合,列表,元组,字典类型)
155 result = {i for i in var}
156 print(result,type(result))
157
158 #函数
159 #冰冻集合可以使用集合的函数(不修改集合本身的函数都可以使用)
160 var = frozenset((‘qs‘,‘szx‘,‘bjh‘,‘acs‘))
161
162 #copy()
163 result = var.copy()
164 print(result)
165
166 #集合操作  交集,并集,差集,对称差集等  不修改冰冻集合本身就能使用:冰冻集合的操作结果都是冰冻集合
167 var1 = frozenset((‘qs‘,‘szx‘,‘bjh‘,‘acs‘))
168 var2 = {‘szx‘,‘bjh‘,‘lc‘,‘wb‘}
169
170 #冰冻集合操作
171 result = var1.union(var2)
172 print(result)
173
174 #普通集合操作(冰冻集合是参考集合)
175 result = var2.union(var1)
176 print(result)

四.数据的可变与不可变

1、什么可变数据类型和不可变数据类型

可变数据类型:value值改变,id值不变;不可变数据类型:value值改变,id值也随之改变。

常见的可变数据类型:列表(list),集合(set),字典(dict) 。

常见不可变数据类型:整数(int),字符串(char),布尔值(bool),元组(tuple)

2、如何确定一种数据类型是可变的还是不可变的

根据可变数据类型与不可变数据类型的概念,只需要在改变value值的同时,使用id()函数查看变量id值是否变化就可以知道这种数据类型是可变的还是不可变的了。

原文地址:https://www.cnblogs.com/wallacewang/p/8850294.html

时间: 2024-12-22 05:47:10

Python 全栈开发二 python基础 字符串 字典 集合的相关文章

Python 全栈开发:python元组tuple

元组 什么是元组:"元组就是一个不可变的列表" (并不是列表,只是为了便于记忆) 用途:用于存放多个值,只能读不能二次赋值 表现形式:小括号()中间以逗号分割各个元素 eg: tuples = ('a','b','c','d') 元组常用的操作 生成一个简单的元组 tuples = tuple(range(5)) print(tuples) #结果(0, 1, 2, 3, 4) len(tuple) #计算元组长度 tuples = (0, 1, 2, 3, 4) print(len(

Python 全栈开发:python列表List

列表 列表是python中经常使用的数据类型,用于存放多个值. 表现形式:在[ ]内用逗号分隔,可以存放n个任意类型的值 eg: #单一类型 users=['yangli','yite','fixd'] #多类型,列表嵌套 users=['room01',['yangli',20,'音乐'],['yite',20,'篮球'],] 列表常用方法 和 函数 方法 函数 常用的操作 eg: len(list) #len(list) 计算列表的长度 ls = ['a','b','c','d'] leng

python全栈开发-Day8 函数基础

python全栈开发-Day8 函数 一 .引子 1. 为何要用函数之不用函数的问题 #1.代码的组织结构不清晰,可读性差 #2.遇到重复的功能只能重复编写实现代码,代码冗余 #3.功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维护难度极大  2. 函数是什么? 针对二中的问题,想象生活中的例子,修理工需要实现准备好工具箱里面放好锤子,扳手,钳子等工具,然后遇到锤钉子的场景,拿来锤子用就可以,而无需临时再制造一把锤子. 修理工===>程序员 具备某一功能的工具===>函数

Python 全栈开发四 python基础 函数

一.函数的基本语法和特性 函数的定义 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的.函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. python中函数的分类 内置函数 自定义函数 特性: 减少重复代码 使程序有更好的扩展性 让程序更容易维护 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆

Python 全栈开发三 python基础 条件与循环

一. 条件语句 python条件语句是根据一条或多条语句的执行结果的真假(True Or False)来决定代码块的执行. 而执行内容可以多行,以缩进来区分表示同一范围. 1.Python判断条件真假的形式: 真 :  True, 非零,非空(即列表非空),非假等等 假:False, 0,空列表,空字典,空集合,非真等等 2.常见的判断条件: if 语句的判断条件可以用>(大于).<(小于).==(等于).>=(大于等于).<=(小于等于)来表示其关系. 当判断条件为多个值时,可以

Python 全栈开发一 python初识

1.Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. Python是一样什么类型的语言 Python是一种强类型定义的解释型的动态语言. 强类型与弱类型语言的区别: 强类型定义语言 一种总是强制类型定义的语言.Java和Python是强制类型定义的.如果你有一个整数,如果不

Python 全栈开发:python文件处理

python文件处理 打开文件的模式 file常用函数 一.打开文件,关闭文件 操作文件的流程: #1. 打开文件,得到文件句柄并赋值给一个变量 #2. 通过句柄对文件进行操作 #3. 关闭文件 open()方法:返回一个file对象 语法格式: #file = open(filename,mode,encoding) #打开文件 #文件操作 文件的读和写 #file.close() #关闭文件 常用参数 filename: 要打开的文件名称(文件的路径) mode: 打开文件的模式(见上图)

Python 全栈开发:python迭代器,生成器

迭代器 一.什么是迭代器 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不是迭代 print('===>') l=[1,2,3] count=0 while count < len(l): #迭代 print(l[count]) count+=1 二.为何要有迭代器,什么是可迭代对象,什么是迭代器对象 #1.为何要有迭代器? 对于序列类型:字符串.列表.元组,我们可以使

Python 全栈开发:python函数进阶

python函数进阶 函数嵌套 函数对象 命名空间与作用域 闭包函数 装饰器 一.函数嵌套 函数的嵌套定义 def func1(): print('from func1') def func2(): #func2=内存地址 print('from func2') print(func2) func1() 函数的嵌套调用 # 比较两个数的大小 def max2(x,y): if x > y: return x else: return y # 比较三个数的大小 def max3(x,y,z): r