3.18基础数据类型常用操作及内置方法

字符串

需要掌握的操作(****)

1、strip,lstrip,rstrip
msg = "****hello****"
print(msg.strip("*"))
print(msg.lstrip("*"))
print(msg.rstrip("*"))

2、lower,upper
msg = "Hello"
print(msg.upper())
print(msg.lower())

3、startswith,endswith
msg = "hello world"
print(msg.startswith("he"))
print(msg.endswith("ld"))

4、format的三种玩法
print("my name is %s my age is %s" %("egon",18))

print("my name is {x} my age is {y}".format(y=18,x="egon"))
print("my name is {} my age is {}".format(18,"egon"))
print("my name is my age is {0}{0}{1}{0}".format(18,"egon"))


x=111
y=222
print(f"my name is {x} my age is {y}")

5、split,rsplit
msg="x:y:z: a:b"
print(msg.split(":",1))
print(msg.rsplit(":",1))

6、join
print(":".join(["aaa","bbb","ccc"]))

7、replace
msg = "xx egon is hhha egon xxx egon"
print(msg.replace('egon','EGON'))
print(msg.replace('egon','EGON',1))
print(msg)

8、isdigit
msg = "123"
print(msg.isdigit())

age = input("your age>>>: ").strip()
if age.isdigit():
   age = int(age)
   if age > 18:
       print('ok')
else:
   print('小垃圾必须输入数字')

需要了解的方法

1、find,rfind,index,rindex,count
msg = "hello egon xxx egon yyy egon zzz"
print(msg.find("egon",0,7))
print(msg.index("egon"))
print(msg.rfind("egon"))
print(msg.rindex("egon"))

print(msg.find("abcde"))
print(msg.index("abcde"))

print(msg.count("egon"))

2、center,ljust,rjust,zfill
print('egon'.center(50,'*'))
print('egon'.ljust(50,'*'))
print('egon'.rjust(50,'*'))
print('egon'.zfill(50))
print('egon'.rjust(50,"0"))

3、captalize,swapcase,title
msg = "hellO woRld"
print(msg.capitalize())

print(msg.swapcase())
print(msg.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、变量值是字符串类型并且包含的阿拉伯数字\中文数字\罗马数字,isdecimal()结果才为真
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())

5、is其他
name='egon123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成

print(name.islower())
print(name.isupper())

name="     "
print(name.isspace())

name ="Hello World"
print(name.istitle())

==该类型总结

存一个值

有序

不可变

列表

list基本使用

1、用途:按位置存放多个值

2、定义方式:在[]内用逗号分割开多个任意类型的元素

l = [11,3.3,"xx",[1111,2222]]  # l = list(。。。)
print(type(l))

list数据类型转换: 所有可以被for循环遍历的类型都可以传给list然后转换成列表
print(list("abc"))
print(list({"k1":111,"k2":222}))

res=list(range(5))
print(res)

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)

l=list1[:]  # 浅拷贝
print(l)

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)

6、删除
list1 = [111,222,333,444,555]
(1) 单纯的删除-》没有返回值
del list1[0]
print(list1)

res=list1.remove(333)
print(list1)
print(res)  # None

(2)取走-》有返回值
res=list1.pop(1)
print(list1)
print(res)

7、循环
list1 = [111,222,333,444,555]
for x in list1:
    print(x)

4、需要掌握的操作

list1 = [111,222,333,333,333,444,555]
print(list1.count(333))

list1= [99,33,22,11,-3,87]
list1.reverse()
print(list1)

list1 = [111,222,333,333,333,444,555]
list1.clear()
list1.append([666,777,888])

for x in [666,777,888]:
    list1.append(x)
list1.extend([666,777,888])
print(list1)

浅copy
list1.copy()
list1[:]

list1 = [111,222,777,888,999,333,333,333,444,555]
res=list1.index(333,0,3)
print(res)

list1 = [111,222,777,888,999,333,333,333,444,555]
list1.sort(reverse=True)
print(list1)

queue = []

queue.append('one')
queue.append('two')
queue.append('three')
print(queue)

print(queue.pop(0))
print(queue.pop(0))
print(queue.pop(0))

5.该类型总结

存多个值

有序

可变

元组

tuple基本使用

1、用途:

2、定义方式:

在()内用逗号分隔开多个任意类型的元素
x = (10,)  #  x= tuple(...)
print(x,type(x))

tuple数据类型转换:任意能够被for循环遍历的类型都可以交给tuple转成元组
print(tuple("hello"))

3、常用操作+内置的方法

优先掌握的操作:

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()

5.该类型总结

存多个值

有序

不可变

字典

dict基本使用

1、用途

2、定义方式:

在{}内用逗号分隔开多个元素,每个元素都是key:value的格式,其中value可以是任意类型
           而key必须是不可变类型,通常是str类型,而且key不能重复

dic = {111:6666,"k1":777,(1,2,3):8888,[1,2,3]:3333}   # dic = dict(...)
dic = {111:6666,"k1":777,(1,2,3):8888,"k1":99999999}
print(dic)
print(dic[(1,2,3)])

dict数据类型转换
info = [('k1',111),('k2',222),('k3',3333)]
dic=dict(info)
print(dic)

print(dict(x=1,y=2,z=3))

3、常用操作+内置的方法

优先掌握的操作:

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")
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)

8、get()
dic = {"name": "egon", "age": 18}
print(dic['namexxxx'])
print(dic.get("namexxxx"))

需要掌握的操作

dic = {"name": "egon", "age": 18}
dic.update({'gender':"male","age":19})
print(dic)

dic = {}.fromkeys(["name","age","gender"],[])
print(dic)
dic['name'].append(1111)
print(dic)

dic = {}.fromkeys(["name","age","gender"],None)


dic = {"age": 18}
if "name" not in dic:
    dic['name'] = "xxx"

v = dic.setdefault('name',"xxx")
print(dic)
print(v)

4.该类型总结

存多个值

无序

可变

集合类型

=set基本使用=

1、用途:

(1)关系运算
(2)去重
pythons = ["egon",'lxx',"张全蛋","李铁蛋",'刘金蛋',"赵银弹"]
linuxs = ['lili','jack','egon','lxx','tom','kkk']

l = []
for stu in pythons:
    if stu in linuxs:
        l.append(stu)
print(l)

2、定义方式:

在{}内用逗号分割开多个元素,需要注意的是集合的元素必须满足
           1、集合的元素必须是不可变类型
           2、集合的元素无序
           3、集合的元素没有重复
s = {}
print(type(s)) # 空字典
s = set()  # 定义空集合

s = {1,'a',2,'b',3,'b','b','b'}  # s=set({1,2,3})
print(type(s))
print(s)

2.set数据类型转换

res = set(“hello”)
res = set([111,222,333,111,[666,777]])
print(res)

3、常用操作+内置的方法

3.1 去重
names = ["egon","egon","egon",'lili','jack',[111,222]]
res = list(set(names))
print(res)

students = [
    {"name":"egon1","age":18,"gender":"male"},
    {"name":"egon2","age":19,"gender":"female"},
    {"name":"egon3","age":20,"gender":"female"},
    {"name":"egon1","age":18,"gender":"male"},
    {"name":"egon1","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的学员姓名
print(pythons & linuxs)
print(pythons.intersection(linuxs))

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

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

print(linuxs - pythons)

(4)对称差集:求没有同时报名两门课程的学员
res = (pythons - linuxs) | (linuxs - pythons)
res = pythons ^ linuxs
print(res)

res = pythons.symmetric_difference(linuxs)
print(res)

(5) 父子集:父子指的包含与被包含的关系
  父集:>=
  子集:<=
s1 = {1,2,3}
s2 = {1,2}
print(s1 >= s2)
print(s1.issuperset(s2))

print(s2 <= s1)
print(s2.issubset(s1))

了解的内置方法

s1 = {'a',1,2,3}
res = s1.pop()
res = s1.remove(2)
s1.remove(4)
s1.discard(2)
print(s1)

print(res)

s1.add(4)
s1.update({4,5,6,3})

s1 = s1.difference({3,4,5})
s1.difference_update({3,4,5})

print(s1.isdisjoint({3,4,5,6}))

print(s1)

s1 = {111,222,333,444,555}
for x in s1:
    print(x)

=该类型总结=
存多个值
无序
set集合可变,frozenset不可变集合
s2 = frozenset({1,2,3})
print(type(s2))


深浅copy

默认情况下都是浅copy
"""
l1 = [111,222,[333,444]]
l2 = l1.copy()
 l3 = l1[:]

 print(id(l1[0]),id(l1[1]),id(l1[2]))
 print(id(l2[0]),id(l2[1]),id(l2[2]))
	l1[2][0] = 666
	l1[0] = 777

print(l1)
print(l2)

man = ["上海",[100,]]
woman = man.copy()

man[1][0] -= 30

print(man)
print(woman)
"""

深copy

from copy import deepcopy

l1 = [111,222,[333,444]]
l2 = deepcopy(l1)

print(id(l1[0]),id(l1[1]),id(l1[2]))
print(id(l2[0]),id(l2[1]),id(l2[2]))

l1[2][0] = 666
print(l1)
print(l2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值