python全栈学习总结二:数字、字符串、列表、元组、字典重要特点及方法

一 python中数据类型

  整形:int

  字符串:str

  列表:list

  元组:tuple

  字典:dict

  布尔值:bool

  浮点型:float

  一切皆对象,在python中,所有的数据类都是看做对象,故所有的类型名称都是类,通过类来建立对象,每个类中都有相应的方法,下面我们通过总结上面其中数据类型的特点以及常用的方法,来加深我们这些数据“类”的认识和理解。

 二 各种数据类型总结

  1 整形int

  定义:age = 10

  转换:value = int(‘158‘)  把字符串‘158’转换成整型158

      value = int(‘ab‘,base = 16),以16进制转换,注意若是不加base =16则默认以十进制转换

  求数字的长度:age.big_length() 使用整型自身的方法输出所占的长度

  2 字符串

  定义:用单引号、双引号个、三个单引号、三个双引号包括起来的各种数据

       name = ‘qiluzhuiche‘

  索引:print(name[0])  ---->q  

  切片:name[0:2]  字符串中的前两个元素

     name[:-1]  字符串中的除最后一个所有元素

     name[2:6:1]

  迭代:for c in name:

      print(c)

      可以打印出字符串中的每个字符

  注意:字符串一旦创建,则不可修改,一旦修改或拼接,都会重新生成字符串,字符串在内存中是连续分配的一串单元,若是对其修改,则重新开辟一片单元。原先的内存单元将被解释器释放掉。

  关系运算:‘q’ in name --->True

  字符串方法总结:

  (1)字符转换

    

name = ‘qilvzhuiche is my qq‘
v = name.capitalize() #首字母大写
print(v)
v = name.upper()#字符串全部大写
print(v)
v = name.lower()#字符串字母全部小写
print(v)
v = name.title()#字符串中的字符的首字母大写
print(v)

(2)字符判断

  

name = ‘qilvzhuiche is  my qq‘
v = name.endswith(‘qq‘)#字符串是否以qq结尾
print(v)
v = name.startswith(‘qi‘)#字符串是否以qi开头
print(v)
name = ‘xiaom ing‘
v = name.isalnum()#判断字符串是否只包含字符、数字而不包含其他特殊字符
print(v)
v = name.isalpha()#判断字符串是否只包含字符而不包含其他特殊字符
print(v)
name = ‘2②二‘
v1 = name.isdecimal()#判断是否质保函数自发自
v2 = name.isdigit()#判断是否只包含数字,支持特殊字符②
v3 = name.isnumeric()#判断是否只包含数字,支持中文数字’二‘
print(v1,v2,v3)
name = ‘_li2u‘
v = name.isidentifier()#判断标识符是否定义的字母、数字、下划线组成
print(v)
name = ‘Liu‘
v1 = name.islower()#判断字符是否都是小写
v2 = name.isupper()#判断字符是否都是大写
v3 = name.istitle()#判断字符首字符是否大写
print(v1,v2,v3)
name = ‘liu \n‘
v = name.isprintable()#判断字符串中是否存在不可显示的字符\n\t\r等
print(v)
name= ‘   ‘
v = name.isspace()#判断字符是否是空格
print(v)

(3)字符串格式化

  两个方法format  format_map

test = "I am {name},age = {age}"
v = test.format(name = ‘qilvzhuiche‘,age = 30) #通过变量对应的字符来重新设置字符串,注意是重新生成的字符串
v = test.format_map({‘name‘:‘qilvzhuiche‘,‘age‘:30})#通过字典重新格式化字符串
print(v)
test = "I am {0},age = {1}"
v = test.format( ‘qilvzhuiche‘,30)#通过字符串中的索引重新格式化字符串
print(v)

(4)分割字符串

name = "   qilvzhuiche   "
v1 = name.strip()#去掉字符串两边的空白字符
v2 = name.lstrip()#去掉字符串左边的空白字符
v3 = name.rstrip()#去掉字符串右边的空白字符  三个方法也可以带参数指定去掉两边的字符,默认去掉空白字符
print(v1+‘\n‘+v2+‘\n‘+v3)

v1 = name.partition(‘i‘)#从左边开始以‘i‘分割字符串,返回元组的形势保存
print(v1)
v2 = name.rpartition(‘i‘)#从右边开始以’i‘分割字符串,返回元组的形势保存
print(v2)
name = ‘qi lv zhui che‘
v1 = name.split()#从左到右开始以‘i‘为分隔符分割,保存到列表中
print(v1)
v2 = name.rsplit()#从右到左开始以’i’为分隔符分割,保存到列表中 默认以空格分割,注意比较partition的异同
print(v2)
test = ‘good \n study \n upper‘
v = test.splitlines()#以换行符\n进行分割
print(v)

(5)拼接字符串

 """
 str.join(元组、列表、字典、字符串) 之后生成的只能是字符串。
所以很多地方很多时候生成了元组、列表、字典后,可以用 join() 来转化为字符串。
 """
v = ‘*‘.join("Hello") #字符串拼接
print(v)
v = ‘,‘.join(‘123456789‘)
print(v)
print(type(v))

(6)统计功能

msg = "good good study,day day up!"
num = msg.count(‘good‘) #统计某个字符串含有某个字符的个数
print(num)
msg1 = ‘人生苦短,我学python!‘
num = msg1.count(‘我‘)
print(num)

(7)字符串排列

msg = ‘I study python!‘
v = msg.center(30,‘*‘)#使字符串居中,剩余位置填充
v = msg.rjust(30,‘*‘) #使字符串靠右对齐,剩余位置填充*
v = msg.ljust(30,‘*‘)#使字符串靠做对齐,剩余位置填充*
v = msg.zfill(30)#使字符串靠右对齐,剩余位置填充0
print(v)

(8)字符串查找功能

"""
find和index都是从左向右查找指定的字符串,不同之处是,若是查找不到,
find返回值为-1,index则报异常
rfind和rindex则是从右向左查找,其余功能相同
"""
msg = ‘人生苦短,我学python!‘
v1 = msg.find(‘苦‘)
v2 = msg.index(‘我‘)
print(v1)
print(v2)
v3 = msg.find("长")
print(v3)

(9)字符替换功能

msg = "人生苦短,我学python"
v = msg.replace(‘我‘,‘要‘) #在字符串中,用新字符替换旧字符
print(v)
msg1 = ‘good good study,Day Day up!‘
v = msg1.replace(‘good‘,‘Good‘) #
print(v)
v = msg1.swapcase() #小写转换为大写,大写转换为小写
print(v)

(10)根据转换表转换字符串

"""
Python translate() 方法根据 maketrans() 方法给出的字符映射转换表转换字符串中的字符。
使用 maketrans() 方法加 translate() 方法将所有元音字母转换为指定的数字,并删除指定字符:
"""
intab = "aeiou"
outtab = "12345"
deltab = "thw"

trantab1 = str.maketrans(intab,outtab) # 创建字符映射转换表
trantab2 = str.maketrans(intab,outtab,deltab) #创建字符映射转换表,并删除指定字符

test = "this is string example....wow!!!"

print(test.translate(trantab1))
print(test.translate(trantab2))

(11)expandtabs应用TAB打印

"""
expandtabs指定转换字符串中的 tab 符号(‘\t‘)转为空格的字符数,默认的字符数是8。
"""
msg = "姓名\t年龄\t性别"
msg2 = "骑驴追车\t19\t男"
msg3 = "若水三千\t28\t男"
v = msg.expandtabs()
print(v)
v = msg2.expandtabs()
print(v)
v = msg3.expandtabs()
print(v)

(12)字符串编码和解码

"""
encode() 方法以指定的编码格式编码字符串,默认编码为 ‘utf-8‘。
bytes decode() 方法以指定的编码格式解码 bytes 对象,默认编码为 ‘utf-8‘。
"""
#!/usr/bin/python3

S = "人生苦短,我学python";
S_utf8 = S.encode("UTF-8")
S_gbk = S.encode("GBK")

print(S)

print("UTF-8 编码:", S_utf8)
print("GBK 编码:", S_gbk)

print("UTF-8 解码:", S_utf8.decode(‘UTF-8‘,‘strict‘))
print("GBK 解码:", S_gbk.decode(‘GBK‘,‘strict‘))

3 列表list总结

定义:ages = [18,23,27,19,21]  #用[]表示列表,列表中的各个元素用逗号隔开,元素可以是数字、字符串、布尔值、列表、字典等

索引:列表具有索引功能,可以通过索引取值,ages[1]--->23

切片:列表可以通过切片取值功能,age[1:3]--->23,27

迭代:可以通过for循环取出所有的值,具有遍历功能。

3.1列表的增删改查:

增:names =[]

  names.append(‘qilvzhuiche‘)#通过列表方法append来增加列表元素

  names.insert(0,‘ruoshuisanqian‘)通过列表方法在指定位置增加元素

  names.entend([‘yingzaidasi‘,‘yangfanqihang‘,‘zailushang‘])#增加多个元素,注意与append的区别,append当成一个元素添加,extend相当于把两个列表合并

删:

  del  names[2] #通过del删除指定位置元素

  names.pop()#删除最后一个元素,自动弹出,返回值为弹出的元素

  names.pop(2)#删除指定位置元素,返回值为删除的元素

  names.remove(‘yangfanqihang‘)#移除指定名称的元素

改:

  names[1] = ‘weinidengdai‘  #修改指定位置的元素

查:

  ‘zailushang’  in names #判断值是否在列表中

  ‘weinidengdai‘ not in names #判断值是否不在列表中

  names.count(‘zailushang‘)#通过查询列表元素出现的次数,判断是否存在

  name.index(‘zailushang‘,0,len(names))#通过查询列表出现的位置判断元素是否存在

names = []
#增
names.append(‘qilvzhuiche‘)
names.insert(0,‘ruoshuisanqian‘)
name2 = [‘yingzaidasi‘,‘yangfangqihang‘,‘zailushang‘]
names.extend(name2)
print(names)
#s删
names.pop()
names.pop(0)
del names[0]
names.remove(‘yingzaidasi‘)
print(names)
#改
names[0] = ‘zailushang‘
print(names)
#查
v = ‘zailushang‘ in names
print(v)
v = ‘yangfanqishang‘ not in names
print(v)
v = names.count(‘zailushang‘)
print(v)
v = names.index(‘yangfanqihang‘)#当所查找元素不存在是,会引起异常
print(v)

3.2列表的排序

ages = [23,24,19,27,21,31]
v = ages.sort() #sort方法直接对列表进行排序,没有返回值
print(v)
print(ages)
ages = [23,24,19,27,21,31]
v = sorted(ages) #sorted函数对列表重新排序后以返回值输出,
print(v)
print(ages)
ages = [23,24,19,27,21,31]
v = ages.sort(reverse=True) #sort方法直接对列表进行排序,reverse=True时,默认倒序排列
print(v)
print(ages)
ages = [23,24,19,27,21,31]
v = ages.reverse() #reverse方法是通过从大到小排列列表,无返回值,直接对列表操作。
print(v)
print(ages)

3.3 列表常用其他方法

names.clear() #对列表进行清空

names.copy()#对列表进行软拷贝

len(names)#求列表的长度

4 元组tuple总结

定义:gender = (‘man‘,‘woman‘,‘none‘) #元组用小括号定义,中间用逗号隔开,至少要含有一个逗号,表示元组.

特点:元组的元素不可以被修改,增加、删除等,只能整体修改。元组的一级元素不可修改。

访问:可以索引访问,也可以切片访问。

迭代:可以for循环遍历

方法:count()#统计  index:查询元素位置

5 字典dict总结

定义:infor = {‘name‘:‘qilvzhuiche‘,‘sex‘:‘man‘,‘age‘:18},字典用大括号来包含元素,还有键值对

特点:(1)字典的值value可以是任何值

   (2)字典的键key可以是:数字int、字符串str、布尔值bool、元组tuple。

   (3)字典是无序的

      (4)字典可以迭代,用for循环遍历

   (5)字典支持通过键来索引查找

5.1字典的增删改查:

infor = {‘name‘:‘qilvzhuiche‘,‘sex‘:‘man‘,‘age‘:18,‘job‘:‘computer‘}
#增
infor[‘hobby‘] = ‘play‘
#删
del infor[‘sex‘]
v  = infor.pop(‘hobby‘)
print(v)
#改
infor[‘age‘] = 19
#查
v= infor.get(‘age‘)
print(infor)
print(v)

5.2字典的循环遍历(迭代)

infor = {‘name‘:‘qilvzhuiche‘,‘sex‘:‘man‘,‘age‘:18,‘job‘:‘computer‘}
for key,value in infor.items():
    print("键:%s 值:%s"%(key,value))
for key in infor.keys():
    print("键:%s"%key)
for value in infor.values():
    print("值:%s"%value)

5.3 字典的其它方法

infor = {‘name‘:‘qilvzhuiche‘,‘sex‘:‘man‘,‘age‘:18,‘job‘:‘computer‘}
info1 = infor.copy()#字典拷贝
del infor[‘sex‘]
print(infor)
print(info1)
v = infor.popitem()  #随机删除一个键值对
print(v)
v = infor.clear() #清空字典
print(v)
print(infor)
infor.setdefault(‘hobby‘,‘paly‘)#设置键值对,默认为None
infor.update({‘name‘:‘ruoshuisanqian‘,‘gender‘:‘man‘,‘age‘:‘28‘})
print(infor)

seq = (‘Google‘, ‘Runoob‘, ‘Taobao‘)

dict1 = dict.fromkeys(seq)  #字典的静态方法运用
print("新字典为 : %s" %  str(dict1))

dict = dict.fromkeys(seq, 10)
print ("新字典为 : %s" %  str(dict1))

6 集合set总结

定义:s = {1,3,6,8,9}

特点:不同元素、无序、不可变类型、可哈希的值

迭代:可以for循环遍历

判断元素是否属于集合的方法?in,not in

通过创建、转换集合可以去除重复的元素!在这方面有重要的应用!

6.1集合的基本方法

#sets = {1,2,3,4,5,6,7,9}

s.add(0) #添加元素s.add(10)s1 = s.copy()#s.clear()s.pop()s.remove(5)

print(s)print(type(s))print(s1)s.discard(12) #移除没有的元素 不会报错#s.remove(11) #移除没有的元素,就报错6.2 集合的重要方法
s1 = {1,2,3,4,5,6}
s2 = {5,6,7,8,9}
#求交集
v1 = s1.intersection(s2)
v2 = s1 & s2
#求并集
v1 = s1.union(s2)
v2 = s1 | s2
#求差集
v1 = s1.difference(s2)
v2 = s1 - s2
#求交叉补集  去掉两个集合公共部分的合集
v1 = s1.symmetric_difference(s2)
v2 = s1 ^ s2

#集合更新
v1 = s1.update(s2)
v2 = s2.update(s1)
print(v1,v2) #update方法,直接更新原集合,没有返回值
print(s1,s2)

"""
//更新原先集合
s1.difference_update()
s1.intersection_update()
s1.symmetric_difference_update()
"""
#求是否是子集
s3 = {5,6}
v = s1.isdisjoint(s2) #求是否有交集 没有返回True  有返回False
v = s3.issubset(s1) #s3是否S1的子集?
v2 = s3 <= s1

v = s2.issuperset(s3) #s2是否S3的父集?
v2 = s1>= s3
print(v,v2)

原文地址:https://www.cnblogs.com/qilvzhuiche/p/9266172.html

时间: 2024-09-30 11:42:21

python全栈学习总结二:数字、字符串、列表、元组、字典重要特点及方法的相关文章

python全栈学习--day31(正则)

try: '''可能会出现异常的代码''' except ValueError: ''''打印一些提示或者处理的内容''' except NameError: '''...''' except Exception: '''万能异常不能乱用''' try: '''可能会出现异常的代码''' except ValueError: ''''打印一些提示或者处理的内容''' except NameError: '''...''' except Exception: '''万能异常不能乱用''' else

python全栈学习路线

查询目录 一,硬件                                                                    十一,数据库 二,Linux基础                                                           十二,前端 三,python基础                                                        十三,Django 四,python文件处理   

python全栈开发【第十七篇】面向对象反射和内置方法

一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静态方法的不同点: 类方法必须有一个cls参数表示这个类,可以使用类属性 静态方法不需要参数 绑定方法:分为普通方法和类方法 普通方法:默认有一个self对象传进来,并且只能被对象调用-------绑定

Python -- 字符串 列表 元组 字典

小Q浪花有意千重雪桃李无言一队春一壶酒一竿纶世上如侬有几人.  ---李煜<渔歌子> --------------------------------------------------------------------------------------- 序列  是Python中最基本的数据结构.序列中每一个元素的位置都有其对应数字编码或索引比如第一个元素的编码是0第二个元素的索引是1............. 序列中可进行的操作索引.切片.加.乘.检查成员另外的长度.最大最小值等内建函

python数据类型基础总结(字符串 列表 元组 字典 集合 )

字符串: 有序.不可变数据类型,支持索引,切片,步长(字符串中的每一个字母或字符都称为元素) 索引(下标):通过索引精确定位到每个元素 索引从左开始向右排 从0开始 索引时不能超过最大值,超出报错 从右向左排从-1开始 切片(顾头不顾尾) 步长 print(name[::2] 取整个字符串,步长为2 字符串方法: upper 全部大写 lower全部小写 capitalize 首字母大写 title每个单词的首字母大写 swapcase 大小写转换 starswith 以..开头 endswit

python 字符串,列表,元组,字典相互转换

1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} 字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'} print type(str(dict)), str(dict) 字典能够转为元组,返回:('age', 'name', 'class') print tuple(dict) #字典能够转为元组,返回:(7, 'Zara', 'First') p

python全栈学习总结更新字符串:字符串格式化方法

一百分号方式 """ 百分号方式 %[(name)][flags][width].[precision]typecode (name) 可选,用于选择指定的key flags 可选,可供选择的值有: + 右对齐:正数前加正好,负数前加负号: - 左对齐:正数前无符号,负数前加负号: 空格 右对齐:正数前加空格,负数前加负号: 0 右对齐:正数前无符号,负数前加负号:用0填充空白处 width 可选,占有宽度 .precision 可选,小数点后保留的位数 typecode 必

python 全栈 数据库(二)MySQL数据库进阶

MySQL 进阶 左右连表: join 上下连表: union #自动去重 (当两张表里的数据,有重复的才会自动去重) union all #不去重 例如: select sid,sname from sname union select tid,tname from teacher select sid,sname from student UNION ALL select sid,sname from student 1.视图 (不常用,开发过程中不长用,在开发语句中写,不要在数据库中写)

python全栈学习--day4

列表 说明:列表是python中的基础数据类型之一,它是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: 1 li = ['alex',123,Ture,(1,2,3,'wusir'),[1,2,3,'小明',],{'name':'alex'}] 列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据.列表是有序的,有索引值,可切片,方便取值. 索引,切片,步长 li = ['xiao',123,True,(1,2,3,'wusir'),[1,2,3,'小明',