PYTHON学习笔记(三)-- 字符串,字典,元组,列表

1.高级数据类型–序列

序列:在python中,序列就是一组按照顺序排列的值【数据结合】
优点:支持索引和切片的操作
特征:第一个正索引为0,指向的是左端,第一个索引为负数的时候,指向的是右端,下标从0开始。

切片:截取数据集中的一段内容—【起始下标:结束下标:步长】,步长默认为1,不会越界,超过最大值不返回值。

2.字符串

遍历字符串

TEST = 'python'
print('获取第一个字符%s'%TEST[0])
print('获取第一个字符%s'%TEST[1])
for item in TEST:
     print(item,end=' ')

常用方法:
1.capitalize()-- 首字母变大写
2.endwith()/startwith() – 是否以x结束/开始
3.find() – 检查x是否在字符串中
4.isalnum – 判断是否是字母和数字
5.isalpha – 判断是否是字母
6.isdigit() – 判断是否是数字
7.islower() – 判断是否是小写
8.join() – 循环取出所有值用xx去链接
9.lower/upper – 大小写转换
10.swapcase – 大写变小写,小写变大写
11.lstrip/rstrip/strip – 移除左/右/两侧空白
12.split() – 切割字符串
13.title() – 把每个单词的首字母变成大写
14.replace(old,new,count=None) – old = 被换字符串;new - 替换字符 串;count=换几个,无count代表全部换
15.count() – 统计已出现次数

TEST = 'python'
name = '          hello         '
#--------------------
print('首字符转换大写%s'%TEST.capitalize()) #首字母大写
#---------------------
print('%s'%name.strip()) #strip()--消除字符串两边的空格
print('%s'%name.lstrip()) #lstrip()--消除字符串左边的空格
print('%s'%name.rstrip()) #rstrip()--消除字符串右边的空格
#------------------
print(TEST.find('p')) #find函数,找到对应字符第一次出现的位置,不存在则返回-1
print(TEST.index('p'))#和find函数一样,不同点是,找不到对应值时会直接报错
#------------------
print(TEST.startswith('I'))#判断是否是括号内的字符为开始,返回的是布尔值
print(TEST.endswith('n'))#判断是否是括号内的字符为结束,返回的是布尔值
#-------------------
print(TEST.lower()) #将字符串所有字符转换为小写
print(TEST.upper()) #将字符串所有字符转换为大写
#--------------------
print(TEST[2:5]) #切片操作,打印的是左闭右开,5不打印
print(TEST[2:5:2]) #指定步长,第二个则跳过,步长负数表示倒序输出
print(TEST[2:10]) #右边不指定范围,则表示从2打印完后面所有字符,
                # 或者后面的数比字符串最大长度长也行
                #左边省略则代表从头开始打印

3.查看变量的储存地址

a = 10
print('a的内存地址%d'%id(a)) #id函数,可以查看一个对象的存储地址

4.列表的使用
1.支持增删改查
2。列表中数据是可以变化的(数据项可以变化,内存地址不变)
3/用【】表示列表类型,数据项之间用逗号进行分割,支持任何类型数据
4.支持索引和切片进行操作

li = [1,2,3,"你好"]
print(len(li)) #len()函数可以获取列表对象中的数据个数
print(li[1:3]) #切片操作,与字符串基本一样
print(li*3) #将列表输出3次
li.index(19) #返回19数据值所在的索引位置

#------------扩展----------------
li.append(['追加','ddd'])#在列表中再嵌套追加一个列表--套娃
li.insert(1,'在1号位插入位置')#选定位置,插入位置
print(li)

rsData = list(range(10))#快速构建一个有十个位置的列表对象
print(type(rsData))
rsData.extend([11,12,13,14])#扩展,相当于批量增加,不是套娃形式
print(rsData)

#-------------修改-----------------
li[1] = '22' #修改对应位置的数据
print(li)
del li[1] #删除操作
del li[2:3] #批量多项删除
rsData.remove(5)#删除指定的数据值,不是位置
rsData.pop(1) #溢出指定位置的值,不是数据值
print(rsData)
print(li)

5.元组
1.不可变–创建后不能修改,增删改都不行,只能重新赋值
2.用()创建元组类型,数据项用逗号分隔
3.可以是任何类型
4.当元组只有一个元素时,要加上逗号,否则解释器会当作是内容对应的数字类型
5.支持切片操作

tupleA = ()#空元组
tupleA = ('abcd',89,9.12,[11,22,33])#重新赋值后地址会改变,相当于新元组
print(type(tupleA))#元组-tuple
print(tupleA)
#-----查询------
for item in tupleA:
    print(item,end=' ') #可以用for循环遍历

print(tupleA[2])#通过下标取值,切片也可以

print(tupleA[::-1])#倒序输出
print(tupleA[::-2])#步长为-2,则倒序隔两个取一个字,-1是最右边,向左依次是-2,-3.。。。
tupleA[4][0] = 285 #元组中的列表是可以修改的,语句为修改元组中列表中下标为0的值

tupleC= tuple(range(10))
print(tupleC.count(8))#统计括号内数据在元组中的出现字数

6.字典
1.不是序列类型,没有下标,通过键值查找数据(MAP)
2.用{}表示字典对象,每个键值对用逗号分隔
3.键-必须是不可变的类型【元组,字符串】,值-可以是任意类型
4.键必须是唯一的,如果存在重复的键,后者会覆盖前者

dictA = {}#空字典
dictA = {'pro':'艺术','age':30}#键值对用逗号分隔
#-------增/改-------
dictA['name']='ou'#添加一个键值对 #key:value
dictA['name']='jey'#修改对应键的值
dictA.update({'age':32})#通过update方法修改对应值,如果是不存在的键则表示添加
print(dictA)
print(type(dictA))
#-----查-------
print(dictA.keys())#打印所有的键
print(dictA.values())#打印所有的值
print(dictA.items())#打印所有的键值对
for item in dictA.items():
    print(item)
#----删-----
del dictA['name']#通过指定键删除键值对
dictA.pop('age')#一样
print(dictA)
#------排序------
#按照key排序
sorted(dictA.items(),key=lambda d:d[0])#语义为按照键的第一个字符排序,d-data,d[0]--按照键排序
#按照value排序
sorted(dictA.items(),key=lambda d:d[1])#d[1]--按照值排序
print(dictA)

7.公有方法 + * in

#---+-----
strA='hello'
strB = 'world'
listA = list(range(10))
listB = list(range(11,20))
print(strA+strB)
print(listA+listB)
#-----复制*-----
print(strA*3)
print(listA*3)
#-----in 对象是否存在------
print('h' in strA)#结果为bool值
print('w' in strA)
dictA = {'name':'jack'}
print('name'in dictA)
print('jack' in dictA)#只判断键,不匹配值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值