python基础语法4

字符串需要了解的方法
1.find,rfind,index,rindex,count
find:查看字符串在一个长字符串中的第一个相同字符串位置,会返回第一个字符的索引。
rfind:作用一样,不过是从右边开始查找。
index:查看字符串在一个长字符串中的第一个相同字符串位置,会返回第一个字符的索引。
rindex:作用一样,不过是从右边开始查找。

find和index的区别:find在找不到时会返回-1,但是index会报错。

count:查看字符串在一个长字符串的个数。

2.center,ljust,rjust,zfill
center:把字符串居中,设置字符串的个数,不够用指定字符填充。
ljust:字符串居左。
rjust:字符串居右。
zfill:字符串居右,但是不够的会用0来填充。

3.captalize,swapcase,title
captalize:字符串第一个字母大写。
swapcase:英文字符大小写反转。
title:相邻的英文字符首字母大写,其他小写。

4.is数字系列
num1=b'4' #bytes
num2='4' # 阿拉伯数字
num3='四' #中文数字
num4='Ⅳ' #罗马数字

# 1、变量值是字节串或字符串类型并且包含的阿拉伯数字,isdigit()结果才为真
# print(num1.isdigit())
# print(num2.isdigit())
# print(num3.isdigit())
# print(num4.isdigit())

# 2、变量值是字符串类型并且包含的阿拉伯数字,isdecimal()结果才为真
# print(num2.isdecimal())
# print(num3.isdecimal())
# print(num4.isdecimal())

# 3、变量值是字符串类型并且包含的阿拉伯数字\中文数字\罗马数字,isnumeric()结果才为真
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())

5.is其他
isalnum:字符串由字母或数字组成
isalpha:字符串只由字母组成
islower:判断英文字符是否全为小写
isupper:判断英文字符是否全为大写
isspace:判断字符串是否全由空格组成
istitle:判断相邻英文的首字母是否大写,其他是否小写

列表类型
1、用途:按位置存放多个值
2、定义方式:在[]内用逗号分割开多个任意类型的元素
3、常用操作+内置的方法
优先掌握的操作:
#1、按索引存取值(正向存取+反向存取):即可存也可以取
# list1 = [111,222,333,444,555]
# print(list1[0])
# print(list1[-1])

# print(id(list1))
# list1[0] = 666
# print(id(list1))

# list1[5] = 777 # 不可以用不存在的索引赋值


#2、切片(顾头不顾尾,步长)
# list1 = [111,222,333,444,555]
# print(list1[0:3])
# print(list1)

# print(list1[::-1])

#3、长度
# list1 = [111,222,333,444,555]
# print(len(list1))

#4、成员运算in和not in
# list1 = [111,222,333,444,555]
# print(222 in list1)

#5、追加
# list1 = [111,222,333,444,555]
# list1.append(666)
# x = list1.append(777)
# print(list1)
# print(x)

# list1.insert(2,666)
# print(list1)

append会加在列表最后,insert会根据索引插入

#6、删除
list1 = [111,222,333,444,555]
(1)单纯的删除没有返回值
del list1[0] 根据索引删除
list1.remove(333) 根据值删除

(2)取走,由返回值
list1.pop(1) 根据索引取走值
7.循环
# list1 = [111,222,333,444,555]
# for x in list1:
# print(x)

需要掌握的操作
1.count:
# list1 = [111,222,333,333,333,444,555]
# print(list1.count(333))
查看333在列表中的数量

2.reverse:
# list1= [99,33,22,11,-3,87]
# list1.reverse()
# print(list1)
使列表顺序反转。

3.clear():清空列表

4.extend:添加多个值

5.index:查看元素是否在列表中,如果在则返回索引值,不在则报错

6.soft:使列表中的值由小到大排列,如果存在不可比较的值,则报错
soft(reverse=True):使列表中的值由大到小排列,如果存在不可比较的值,则报错


元组类型tuple、

定义方式:在()内用逗号分隔开多个任意类型的元素
tuple数据类型转换:任意能够被for循环遍历的类型都可以交给tuple转成元组
常用操作+内置的方法
优先掌握的操作:
#1、按索引取值(正向取+反向取):只能取
# t = (111,222,333,[44,555])
# print(t[0])
# t[0]=6666

#2、切片(顾头不顾尾,步长)
# t = (111,222,333,[44,555])
# print(t[0:3])

#3、长度
# t = (111,222,333,[44,555])
# print(len(t))

#4、成员运算in和not in
# t = (111,222,333,[44,555])
# print([44,555] in t)

#5、循环
# t = (111,222,333,[44,555])
# for x in t:
# print(x)

需要掌握的操作:
# t = (111,222,333,[44,555])
# t.index()
# t.count()


字典类型dict
1、用途:根据key值来存放多个值
2、定义方式:在{}内用逗号分隔开多个元素,每个元素都是key:value的格式,其中value可以是任意类型而key必须是不可变类型,通常是str类型,而且key不能重复
3.dict数据类型转换
# info = [('k1',111),('k2',222),('k3',3333)]
# dic=dict(info)
# print(dic)

# print(dict(x=1,y=2,z=3))
4.常用操作+内置的方法
优先掌握的操作:
#1、按key存取值:可存可取
# dic = {"name":"egon","age":18}
# dic['gender'] = "male"
# dic['name'] = "xxxx"
# print(dic)

#2、长度len
# dic = {"name":"egon","age":18}
# print(len(dic))

#3、成员运算in和not in: 以key为准
# dic = {"name":"egon","age":18}
# print('name' in dic)

#4、删除
dic = {"name": "egon", "age": 18}
# 单纯的删除
# del dic['name']
# print(dic)

# 取走
# v=dic.pop("name")根据key值来取到value值
# print(v)

# v = dic.popitem()随机删除一个键对值
# print(v)

#5、键keys(),值values(),键值对items()
dic = {"name": "egon", "age": 18}
# >>> dic.keys()
# ['age', 'name']
# >>> dic.values()
# [18, 'egon']
# >>>
# >>> dic.items()以列表的方式拿出
# [('age', 18), ('name', 'egon')]

#6、循环
# for k in dic.keys():
# print(k)
#
# for k in dic:
# print(k)

# for v in dic.values():
# print(v)

# for k,v in dic.items():
# print(k,v)

# 7、get()
# dic = {"name": "egon", "age": 18}
# print(dic['name'])如果key不存在,则会报错
# print(dic.get("name"))但是get就不会报错,会返回None

# 需要掌握的操作
updata:用新字典更新旧字典,如果新字典中的key,旧字典中没有,则会添加,如果有,会以新字典为标准修改旧字典。

formkeys:快速的初始化一个新字典
# dic = {}.fromkeys(["name","age","gender"],None)

setdefault:如果字典中有值不做任何事,没有就添加
v = dic.setdefault('name',"xxx")返回的v值是‘name’的value值,没有添加就是原来的值,添加了就是添加之后的值

集合set的基本使用
1.用途:
关系运算
去重
2.定义方式:在{}内用逗号分割开多个元素,需要注意的是集合的元素必须满足
1、集合的元素必须是不可变类型
2、集合的元素无序
3、集合的元素没有重复
s = {} # 定义空字典
s = set() # 定义空集合

# set数据类型转换
# res = set("hello")
# res = set([111,222,333,111,[666,777]])
# print(res)
3、常用操作+内置的方法
3.1 去重
students = [
{'name':'yx','age':18,'gender':'male'},
{'name':'fdw','age':18,'gender':'male'},
{'name':'qx','age':18,'gender':'male'},
{'name':'yx','age':18,'gender':'male'},
{'name':'yx','age':18,'gender':'male'}
]

new_l = []
for info in students:
if info not in new_l:
new_l.append(info)
print(new_l)

3.2 关系运算
pythons = {"egon",'lxx',"张全蛋","李铁蛋",'刘金蛋',"赵银弹"}
linuxs = {'lili','jack','egon','lxx','tom','kkk'}

(1)交集:求既报名pyton又报名linux的学员姓名
pythons & linuxs
pythons.intersection(linuxs)

(2)并集:求所有学生姓名
pythons | linuxs
pythons.union(linuxs)

(3)差集: 求只报名python的学员姓名
pythons - linuxs
pythons.differece(linuxs)

(4)对称差集:求没有同时报名两门课程的学员
pythons ^ linuxs
pythons.symmetric_differece(linuxs)

(5) 父子集:父子指的包含与被包含的关系
父集:>= .issuperset
子集:<= .issubset

# 了解的内置方法
pop()随机删除一个
remove()指定删除一个,没有就会报错
discard()指定删除一个,没有不会报错
add()添加一个值
updata()添加多个值
differece_updata()删除两个集合中都有的值
isdisjoint()两个集合为空交集时返回True

字典可以存放多个值,但是是无序的
set集合可变,frozenset是不可变集合


深浅copy
1. 默认情况下都是浅copy

浅copy中,如果有可变类型,那么原来的变量改变了,被copy的变量也会跟着改变

2、深copy
from copy import deepcopy

deepcopy(‘要copy的值’)
深copy会把copy的元素和之前完全区分开,即使之前的元素怎么改变不会影响copy的值

posted @ 2021-03-22 12:17  余鑫  阅读(156)  评论(0)    收藏  举报