Day 3 python 高级数据类型

Day 3

序列——一组按照顺序排列的值【数据集合】

序列:字符串、列表、元组

优点:支持索引和切片

特征:第一个正索引为0,指向的是左端,第一个索引为负数的时候,指向的是右端

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KmQr3rM9-1614642253150)(https://static.runoob.com/wp-content/uploads/123456-20200923-1.svg)]

切片——根据下标获取序列对象中的部分内容

切片语法结构:

【start:end:step】 step 默认为1

下标会越界,切片不会越界

字符串

字符串索引

字符串常用函数

1capitalize() 将字符串的第一个字符转换为大写
2center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
3count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
4bytes.decode(encoding=“utf-8”, errors=“strict”) Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
5encode(encoding=‘UTF-8’,errors=‘strict’) 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
6endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
7expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
8find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
9index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常。
10isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
11isalpha() 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
12isdigit() 如果字符串只包含数字则返回 True 否则返回 False…
13islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
14isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False
15isspace() 如果字符串中只包含空白,则返回 True,否则返回 False.
16istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False
17isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
18join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
19len(string) 返回字符串长度
20[ljust(width, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
21lower() 转换字符串中所有大写字符为小写.
22lstrip() 截掉字符串左边的空格或指定字符。
23maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
24max(str) 返回字符串 str 中最大的字母。
25min(str) 返回字符串 str 中最小的字母。
26[replace(old, new , max]) 把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
27rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找.
28rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始.
29[rjust(width,, fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
30rstrip() 删除字符串字符串末尾的空格.
31split(str="", num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
32[splitlines(keepends]) 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
33startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
34[strip(chars]) 在字符串上执行 lstrip()和 rstrip()
35swapcase() 将字符串中大写转换为小写,小写转换为大写
36title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
37translate(table, deletechars="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
38upper() 转换字符串中的小写字母为大写
39zfill (width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0
40isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

字符串常用函数案例

dataStr='I love python'
print(dataStr.find('p'))           #查找 返回下标
print(dataStr.index('p'))  #查找 返回下标 若没有 则报错
print(dataStr.startswith('I'))     #是否以 为开头
print(dataStr.endswith('n'))         #是否以 为结尾
print(dataStr.lower())         #转小写
print(dataStr.upper())         #转大写

切片案例

strMsg='hello world'
# 切片slice[start:end:step]     不包含end  左闭右开
print(strMsg)                    #输出完整
print(strMsg[2:5])               #输出部分   2-5之间
print(strMsg[2:])                #从第3个到最后
print(strMsg[:3])                #从0到3个    0可以省略
print(strMsg[::-1])              #倒序输出 负号表示方向

列表

list 列表——有序的集合 可以随时增加或删除数据

list特点:

  1. 支持增删改查
  2. list中的数据是可以变化的【数据项可以变化,内存地址不会改变】
  3. 用[]来表示list类型,数据项之间用逗号来分割 数据项可以是任何类型的数据
  4. 支持索引和切片操作

list索引

正索引

反向索引

list常用方法

1list.append(obj) 在列表末尾添加新的对象
2list.count(obj) 统计某个元素在列表中出现的次数
3list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
5list.insert(index, obj) 将对象插入列表
6[list.pop(index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7list.remove(obj) 移除列表中某个值的第一个匹配项
8list.reverse() 反向列表中元素
9list.sort( key=None, reverse=False) 对原列表进行排序
10list.clear() 清空列表
11list.copy() 复制列表

list查找

#查找
listA=['abcd',789,12.25,'qwe',True]
print(listA)          #输出list
print(listA[0])       #输出第一个
print(listA[1:3])     #输出第二个到第三个元素
print(listA[2:])      #输出第三个元素到最后一个元素
print(listA[::-1])    #倒序输出
print(listA*2)        #输出多次list

listB=list(range(10,20))
print(listB.index(18))              #返回索引下标


list增加

#增加
listA=['abcd',789,12.25,'qwe',True]
print(listA)
listA.append(['fff','ddd'])     #追加
listA.append(8888)              #追加
print(listA)

listA.insert(1,'插入')        #指定位置插入
print(listA)

rsData=list(range(10))          #快速构建list
listA.extend(rsData)            #批量增加    拓展
print(listA)

list修改

#修改
listA=['abcd',789,12.25,'qwe',True]
listA[0]='qewqwewqe'            #修改   通过索引
print(listA)

list删除

#删除
listB=list(range(10,20))
print(listB)
del listB[0]            #删除一个数据
del listB[1:5]          #批量删除
listB.remove(18)         #移除指定元素   参数为数据值
listB.pop(1)              #移除指定项   参数为索引值
print(listB)

元组

tuple元组——不可变的序列,创建后不可修改

特点:

  1. 不可变
  2. 用()创建,数据项用逗号分割
  3. 可以为任何类型
  4. 当元组中只有一个元素时,要加上逗号,不然解释器会当作整形处理
  5. 支持索引&切片

tuple索引

tuple的创建

#元组的创建   不可修改
tupelA=('qwe',123,12.3,'deer',[11,22])
print(tupelA)

tuple的查询

#元组的查询
print(tupelA[2:4])           #输出第三个到第四个
print(tupelA[::-1])          #逆序输出
print(tupelA[::-2])          #逆序隔两个取一个
print(tupelA[-2:-1:])       #倒着取下标为-2到-1区间的

注:元组中的列表可以被修改

tupelA[4][0]=456789             #可以对元组中的列表修改
print(tupelA)

字典

dict字典——以键值对形式组成的集合 {‘key’:‘value’}

根据键进行查找

可以增删改查

key不可以重复,只能是不可变类型,如:数字,字符串,元组

特点:

  1. 不是序列类型,没有下标概念,是无序的键值集合
  2. 键必须为不可变类型(元组、字符串)
  3. 键必定唯一,如果存在重复,则后者覆盖前者

dict常用方法

1radiansdict.clear() 删除字典内所有元素
2radiansdict.copy() 返回一个字典的浅复制
3radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4radiansdict.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict 如果键在字典dict里返回true,否则返回false
6radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
7radiansdict.keys() 返回一个迭代器,可以使用 list() 来转换为列表
8radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
10radiansdict.values() 返回一个迭代器,可以使用 list() 来转换为列表
11[pop(key,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12popitem() 随机返回并删除字典中的最后一对键和值。

dict增删改查

#创建字典
dictA={'pro':'art','school':'ssfz'}
#添加字典数据
dictA['name']='deer'    #key:value
dictA['age']=30
dictA['pos']='singer'

print(dictA)
print(len(dictA))

print(dictA['name'])     #通过键获取对应的值
dictA['name']='lqj'      #通过键修改对应的值
dictA.update({'age':15}) #添加或更新
print(dictA)

print(dictA.keys())     #获取所有键
print(dictA.values())   #获取所有值
print(dictA.items())    #获取所有键值对

for key,value in dictA.items():
    print('%s==%s'%(key,value))
    pass

del dictA['name']       #删除指定键
dictA.pop('age')        #删除指定键
print(dictA)

dict排序

#排序 按照key
print(sorted(dictA.items(),key=lambda d:d[0]))

#排序 按照value
print(sorted(dictA.items(),key=lambda d:d[1]))

公共操作

合并——str,list,tuple

#合并+
#字符串合并
strA='my'
strB='love'
print(strA+strB)
#列表合并
listA=list(range(10))
listb=list(range(10,20))
print(listA+listb)

复制——str,list,tuple

#复制  *
print(strA*3)
print(listA*3)

in判断元素是否存在——str,list,tuple,dict

#in 对象是否存在   返回bool值
print('m' in strA)
print(5 in listA)
dictA={'name':'deer'}
print('name'in dictA)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值