字符串
字符串就是一系列字符,在Python中用引号括起来的都是字符串,其中引号可以是单引号也可以是双引号。
这样更灵活,能让你在字符串中包含引号和撇号
修改字符串的大小写
string.title():该方法将字符串中每个单词的第一个字母转换为大写字母(在需要将名字视为信息时很有用)
string.upper():该方法将字符串改为全部大写
string.lower():该方法将字符串改为全部小写
StringValue = "I am enqueue"
print(StringValue.title())
print(StringValue.upper())
print(StringValue.lower())
在字符串中使用变量
在字符串中使用变量有两种方法:①f字符串和②format()方法
①要在字符串中插入变量的值,可在引号前加上字母f,再将要插入的变量放在花括号内。这样当Python显示字符串时,将吧每个变量都替换为其值
first_name = "ou yang"
last_name = "chen"
full_name = f"{
first_name} {
last_name}"
print(full_name)
②如果使用的是Python3.5或者更早的版本则需要使用format():在圆括号内列出要在字符串中使用的变量。对每个变量,都通过一对花括号来引用。这样将按顺序将这些花括号替换为圆括号内列出的变量的值
first_name = "ouyang"
last_name = "chen"
full_name = "{} {}".format(first_name,last_name)
print(full_name)
删除空白
当要删除字符串两边的空白时,可用lstrip()、rstrip()、strip()函数,分别删除左边空白、右边空白、左右两边空白。
language = " python 666 "
language_l = language.lstrip()
print(language_l)
language_r = language.rstrip()
print(language_r)
language_lr = language.strip()
print(language_lr)
列表
列表是python中最基本的数据结构,列表中的每一个值都有对应的下标,称为索引,索引从0开始,第二个为1,以此类推,最后一个索引为-1,往前一位为-2,以此类推。
列表可进行的操作:索引、切片、加、乘、检查成员
创建列表
list1 = [‘a’,‘b’,‘c’]
list2 = [1,2,3]
list3 = [‘apple’,'banana‘,‘car’]
list4 = [‘a’,1,‘apple’,2.3]
列表对象方法
list1 = ['a','b',1,1,2,'apple','banana',2.3,4.5]
list2 = []
#把一个元素添加到列表结尾,相当于list1[len(list):] = ['x']
list1.append('x')
print(list1)
#将一个给定列表中的所有元素都添加到另一个列表中,相当于list2[len(list2):] = list1
list2.append(list1)
print(list2)
#在指定位置插入一个元素,第一个参数是准备插入到其前面的那个元素的索引。
# 例如:list1.insert(0,6),而list1.insert(len(list1),6)相当于list1.append(6)
list1.insert(0,6)
print(list1)
#删除列表中的值为x的第一个元素。如果没有这样的元素,则返回一个错误。
list1.remove(6)
print(list1)
#从列表指定位置删除元素,并将其返回。如果没有指定索引的话,list.pop()会返回最后一个元素
list1.pop(2)
print(list1)
#从列表中删除所有元素,相当于del list[:]
list2.clear()
print(list2)
#返回列表中第一个值为x的元素的索引。如果没有匹配的元素则返回一个错误
print(list1.index('x'))
#对返回x在列表中出现的次数。
print(list1.count(1))
list3 = [3,2,5,1,4,5,14,12]
list4 = [3,2.4,5,1.5,4,5,14,1.2]
list5 = ['earth','car','apple','banana']
# 对列表中的元素就地排序(只能是同一类型,不能是数跟字符串混合的列表)
list3.sort()
list4.sort()
print(list3)
print(list4)
#对列表中的元素倒序排序
list3.reverse()
print(list3)
#或者用sort(reverse = True)
list4.sort(reverse=True)
print(list4)
#要保留列表元素原来的排序顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()
#让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排序顺序
print(sorted(list5))
print(list5)
#返回列表的一个浅拷贝。等同于a[:]。
list6 = list5.copy()
print(list6)
把列表当作堆栈使用
队列是先进先出的,不过列表这样用效率太低。相对来说从列表末尾添加和弹出很快,但在头部插入和弹出却很慢。为此要通过列表来实现队列,使用collections包下的deque方法来实现,该方法专门为首位两端快速插入和删除而设置的。
1、引入:from collections import deque
2、创建:queue = deque([‘a’,‘b’,‘c’])
队尾入队依然用append函数
对头出队则使用popleft函数
from collections import deque
list1 = deque([2,4,7,2,5,'a','b','sfd',1.34])
print(list1)
list1.append('real')
head = list1.popleft()
print(head)
print(list1)
把列表当作栈
相比于队列,栈是先进后出,直接Yoonappend()方法可以把一个元素添加到堆栈顶部。用不指定索引的pop()方法可以把一个元素从堆栈顶释放出来。
列表推导式
元组
元组的值是不能修改的,与列表不同,元组使用小括号**(),列表使用方括号[]**
在这里插入代码片
创建元组
tuple = (‘apple’,‘banana’,1,2,2.3,4.5)
tuple = ‘a’,‘b’,123,4.56
- 创建空元组
tup = ()
注意:当元组中只包含一个元素时,需要在元素后面添加逗号**,**,否则括号会被当作运算符。
修改元组
元组元素不能修改,但可以对元组进行连接组合
tup1 = (12,34.56)
tup1[0] = 0
元组元素不可修改
tup1 = (12,34.56)
tupl2 = ('a','b','c')
tup3 = tupl2+tup1
print(tup3)
元组之间可连接组合
删除元组
元组中的元素值不可修改,但可以使用del语句来删除整个元组
tup1 = (12,34.56)
del tup1
print(tup1)
元组运算符
元组之间可以用运算符如:+、+=、*来进行运算从而使元组之间能够进行组合和复制,运算后会生成一个新的元组。
可以用in来判断某元素是否在元组中,也可以用它来对元组进行迭代
元组索引和截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素。
tup[a,b]:表示截取元素中下表从a到b之间的元素,包括a不包括b
tup[a]:表示读取下标为a的元素
tup[a:]:表示读取从下表为a及后面的所有元素
tup[:b]:表示读取从第一个到下标为b的所有元素,不包括下标为b的元素
tup[-a]:反向读取,读倒数第a个元素,倒数第一个元素为-1
关于元组是不可变的
所谓元组不可变是指元组所指向的内存中的内容不可变,若给元组重新赋值,则相当于绑定到新的对象,而不是修改了原来的对象。
tup1 = (1,2,3,4.56)
print(id(tup1))
tup1 = ('a','b','c')
print(id(tup1))
字典
字典是可变容器模型,且可存储任意类型对象字典的每个键值对用冒号分割,每个对之间用逗号分割,整个字典包括在花括号中格式如下:
d = {key1: value1,key2:value2,key3:value3}
注意:字典中的键必须是唯一的,但值不必,值可取任意数据类型,但键必须不可变,如字符串、数字等。
创建空字典
1、使用大括号
emptydict = {}
dic = {
"name":"ouyang","age":23,"class":4}
2、使用内建函数:dict()
emptydict = dict()
修改字典
向字典添加新内容是增加新的键值对,修改或删除已有键值对。
dict[‘key1’] = value1
删除字典元素
1、删除一个元素:
del dict[‘a’]
2、删除整个字典:
①dict.clear()
②del dict
字典的特性
1、字典的键必须是不可变的,可用数字、字符串或元组充当。
2、字典的值可用是任何的Python对象,既可以是标准的对象,也可用是用户定义的。
3、不允许同一个键出现两次,若同一个键被赋值两次或以上,则最后一个值被记住。
字典的内置函数&方法
1、len(dic):计算字典元素个数,既键的总数
dic = {
"name":"ouyang","age":23,"class":4}
print(len(dic))
2、str(dict): 输出字典,可用打印的字符串表示
dic = {
"name":"ouyang","age":23,"class":4}
print(dic)
print(str(dic))
3、type(variable):返回输入的变量类型,如果变量是字典就返回字典类型
dic = {
"name":"ouyang","age":23,"class":4}
print(dic)
print(type(dic))
使用get()来访问值
使用放在方括号内的键从字典中获取值时,如果该指定的键不存在,则会出错。此时可使用方法get()在指定的键不存在时返回一个默认值,从而避免错误。
dic = {
"name":"ouyang","age":23,"class":4}
class_number = dic.get('class','No point values assigned!')
print(class_number)
school_name = dic.get('school','No point value assigned!')
print(school_name)
遍历字典
- 遍历键值:要编写遍历字典的for循环,可声明两个变量,用于存储键值对中的键和值。for语句的第二部分包含字典名和方法items()。它返回一个带两个元素的元组,为此可以用两个变量来接受,使用者两个变量来打印每个键及其相关联的值。
dic = {
"name":"ouyang","age":23,"class":4}
for i in dic.items():
print(i)
print(type(i))
for k,v in dic.items():
print(f'{
k}:{
v}')
print(type(k),type(v))
- 遍历键:遍历键可以用keys()方法,当然直接用for i in dic: print(i),也能只得到键,但前者可让代码更容易理解,看自己选择。
- 遍历值:如果只想输出值的话可以使用方法values()来返回一个值列表,不包含任何键。这种方法提取字典中的每个值,而没有考虑是否重复。
集合
集合是一个无序不重复元素的序列
基本功能
关系测试和消除重复元素。
数学运算
集合对象还支持union(联合)、intersection(交)、difference(差)和sysmmetric difference(对称差集)等。
集合的创建
创建集合时可以使用大括号:{}或者set()
创建格式:
- 方法1:大括号{}
parame = {value0,value1,value2,…}
parame = {
1,'w',1.22}
- 方法2:set()
创建空集合:parame2 = set(value)
parame2 = {
'sdgf',34,1.24}
创建非空集合也可用set()
parame2 = set((1,'w',1.22,'apple',1,'w',6,'1'))
去重功能
由于集合是一个无序不重复元素的序列,所以不能出现两个一样的元素,即使你编程时写重了,在打印的时候也会被自动去除重复的元素。
parame = {
1,'w',1.22,'apple',1,'w',6,'1'}
print(parame)
编译结果:‘w’跟‘1’是重复的,则在打印时只会显示一次,且顺序是随机的。
集合的基本操作
- 添加元素
- 第一种添加元素是使用add()方法,将新元素x添加到元素s中,若元素已存在,则不进行任何操作
语法格式如下:
s.add(x)
parame = {
1,'a',1.2}
print(parame)
parame.add(3)
print(parame)
编译结果:
- 第二种添加元素的方法,且参数可以是列表、元组、字典等
语法格式如下:
s.update(x)
parame = {
1,'a',1.2}
print(parame)
parame.update({
2,4,6})
print(parame)
parame.update(['aa','bb'])
print(parame)
编译结果:
- 移除元素
- 第一种方法是使用remove()函数
语法格式:
s.remove(x)
若要移除的那个元素不在集合中,则会发生错误
parame = {
1,'a',1.2}
parame.remove('a')
print(parame)
parame.remove('b')
- 第二种方法是使用discard()函数,并且该方法在当待删除元素不存在时不会发生错误
语法格式
s.duscard(x)
parame = {
1,'a',1.2}
parame.discard('a')
print(parame)
parame.discard('b')
print(parame)
- 第三种方法是使用pop()方法,该方法会随机删除集合中的一个元素,set集合的pop方法会对集合进行无序的排序,然后将最左边的元素删除。
语法格式:
s.pop()
parame = {
1,'a',1.2}
parame.pop()
print(parame)
两次编译结果不同
- 计算集合元素个数
语法格式:
len(s)
parame = {
1,'a',1.2}
print(len(parame))
- 清空集合
语法格式:
s.clear
parame = {
1,'a',1.2}
parame.clear()
print(parame)
编译结果:
- 判断元素是否在集合中存在
可以用in来判断某元素是否存在于一个集合内
parame = {
1,'w',1.22,'apple',1,'w',6,'1'}
print(2 in parame)
print(1 in parame)
编译结果: