【Python第三课(2)】高级数据类型

本文介绍了Python中字符串的常用方法,如获取指定下标值、遍历输出。接着讲解了列表的创建、查找、切片、增加、修改和删除操作。然后转向元组,强调其不可变性,但可修改内部的列表元素。最后,概述了字典的新增、修改、删除以及排序等操作。
摘要由CSDN通过智能技术生成

1.  字符串及常用方法

#输出对应下标的值
test='I love yundi lee.'
print('获取第1个字符%s'%test[0]) #获取第1个字符I
print('获取第2个字符%s'%test[4]) #获取第2个字符v
#遍历输出
for i in test:
    print(i,end='') #I love yundi lee.

 复制字符串 

 实质:只是把a对象的内存地址赋给了b对象

#复制字符串
#print('a的内存地址%d'%id(a)) #id函数  可以查看一个对象的内存地址
a='admin'
b=a   #只是把a对象的内存地址赋给了b对象
print(id(a))  #37658880
print(id(b))  #37658880

 2.  列表及常用方法

 list- 新建

#列表
li=[] #空列表
li=[1,2,3,"你好"]
print(type(li))
print(len(li)) #len函数可以获取到列表对象中的数据个数 4
strA='我喜欢python'
print(len(strA)) #9

list- 查找- 切片 .index

#list切片(查找)
listA=['abcd',785,12.23,'qiuzhi',True]
print(listA[0]) #输出:abcd
print(listA[1:3]) #输出:第2-3个元素 [785, 12.23]
print(listA[2:]) #输出:从第3个开始到最后所有的元素 [12.23, 'qiuzhi', True]
print(listA[::-1]) #输出:从右向左倒序输出 ['abcd', 785, 12.23, 'qiuzhi', True, 'abcd', 785, 12.23, 'qiuzhi', True]
print(listA*2) #输出多次:['abcd', 785, 12.23, 'qiuzhi', True, 'abcd', 785, 12.23, 'qiuzhi', True]
listB=[1,2,3,4,23,23,23]
listB.index(23)  #返回的是第一个索引值
listB.index(value,start,maxsize) #返回的是一个索引值 在指定索引范围内查找value,返回第一个索引值

 list- 增加- .append .insert .extend

listA=['abcd',785,12.23,'qiuzhi',True]
listA.append('2d3r') #追加操作
print(listA) #输出:['abcd', 785, 12.23, 'qiuzhi', True, '2d3r']
listA=['abcd',785,12.23,'qiuzhi',True]
listA.append([1,2,3,'11'])
print(listA) #输出:['abcd', 785, 12.23, 'qiuzhi', True, [1, 2, 3, '11']]
listA=['abcd',785,12.23,'qiuzhi',True]
listA.insert(1,'这是插入的内容') #插入操作,在某一位置进行插入
print(listA)  #['abcd', '这是插入的内容', 785, 12.23, 'qiuzhi', True]
listA=['abcd',785,12.23,'qiuzhi',True]
listA.insert(1,[1,2,3,'11']) #插入操作,在某一位置进行插入
print(listA)  #['abcd', [1, 2, 3, '11'], 785, 12.23, 'qiuzhi', True]
listA=['abcd',785,12.23,'qiuzhi',True]
rsData=list(range(10))
listA.extend(rsData) #拓展 批量添加 object is iterable
print(listA) #输出:['abcd', 785, 12.23, 'qiuzhi', True, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
listA=['abcd',785,12.23,'qiuzhi',True]
listA.extend("1q2w") 
print(listA) #输出:['abcd', 785, 12.23, 'qiuzhi', True, '1', 'q', '2', 'w']
listA=['abcd',785,12.23,'qiuzhi',True]
rsData=range(10)
listA.extend(rsData)
print(listA) #输出:['abcd', 785, 12.23, 'qiuzhi', True, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

list- 修改- 根据索引直接修改

listA=['abcd',785,12.23,'qiuzhi',True]
listA[0]=100 #根据索引直接修改内容
print(listA) #输出:[100, 785, 12.23, 'qiuzhi', True]

list- 删除- del .pop .remove

listB=[1,2,3,4,23,23,23]
del listB[0] #删除列表中的第一个元素
del listB[2:3] #批量删除多项数据 slice
listB.remove(23) #移除指定的元素(第一个元素),参数是指定值 listB=[1,2,3,4,23,23,23] ,输出:[1, 2, 3, 4, 23, 23]
listB.pop(1) #移除指定的元素,参数是索引 .pop()默认删除最后一个元素
print(listB)

3. 元组

tuple- 新建

tupleA=()
print(id(tupleA)) #40632360
tupleA=('abcd',89,9.12,'peter',[1,2,3],(11,22,33)) #元组创建,不能进行修改
print(id(tupleA)) #42160696 重新赋值后,会新开辟一个存储空间
print(tupleA)

tuple- 查询

for item in tupleA:
    print(item,end=' ') #遍历
    pass
tupleA=('abcd',89,9.12,'peter',[1,2,3],(11,22,33))
print(id(tupleA))
print(tupleA[2:4]) #(9.12, 'peter'). 切片
tupleA=('abcd',89,9.12,'peter',[1,2,3],(11,22,33))
tupleA[::-1] #倒序  ((11, 22, 33), [1, 2, 3], 'peter', 9.12, 89, 'abcd')
tupleA[::-2] #倒序  ((11, 22, 33), 'peter', 89)
tupleA=('abcd',89,9.12,'peter',[1,2,3],(11,22,33))
print(tupleA[-2:-1:]) #负索引值 ([1, 2, 3],)
tupleA[-4:-1:] #(9.12, 'peter', [1, 2, 3])

不能修改 

tupleA=('abcd',89,9.12,'peter',[1,2,3],(11,22,33))
tupleA[0]='qwerty'
print(tupleA) #TypeError: 'tuple' object does not support item assignment

可以对元组中的列表类型的数据进行修改 

tupleA=('abcd',89,9.12,'peter',[1,2,3],(11,22,33))
tupleA[4][0]='qwe'
print(tupleA) #可以对元组中的列表类型的数据进行修改,!!!地址没有变  ('abcd', 89, 9.12, 'peter', ['qwe', 2, 3], (11, 22, 33))

.count 统计出现的次数

tupleC=(1,22,3,4,4,5,5,66,7,7,8,8,8)
print(tupleC.count(8)) #统计出现的次数 3

4. 字典

dictA={} #空字典

#添加字典数据

dictA['name']='小明'

dictA['age']=20

dictA['pos']='学生'

print(dictA) #{'name': '小明', 'age': 20, 'pos': '学生'}
dictB={'pro':'艺术','school':'北影'} #{'pro': '艺术', 'school': '北影'} 
print(dictB)
print(len(dictB)) #2 字典长度,键值对数

dict- 新增、修改、删除 

dictB={'pro':'艺术','school':'北影'} #{'pro': '艺术', 'school': '北影'} 
dictB['pro'] #艺术 通过键获取对应的值
dictB['school']='香港大学' #{'pro': '艺术', 'school': '香港大学'} 修改键值对的值
dictB.update({'pro':'音乐'}) #修改 {'pro': '音乐', 'school': '北影'}
dictB.update({'age':'25'}) #新增 {'pro': '音乐', 'school': '北影', 'age': '25'}
del dictB['school'] #删除指定键 {'pro': '艺术'}
dictB.pop('pro') #{'school': '北影'}
print(dictB)
dictB={'pro':'艺术','school':'北影'} #{'pro': '艺术', 'school': '北影'} 
#获取所有的键
dictB.keys() #dict_keys(['pro', 'school'])
#获取所有的值
dictB.values() #dict_values(['艺术', '香港大学'])
#获取所有的键值对
dictB.items() #dict_items([('pro', '艺术'), ('school', '北影')])
dictB={'pro':'艺术','school':'北影'} #{'pro': '艺术', 'school': '北影'} 
for item in dictB.items():
    print(item)
    pass
#('pro', '艺术')
#('school', '北影')
dictB={'pro':'艺术','school':'北影'} #{'pro': '艺术', 'school': '北影'} 
for key,value in dictB.items():
    print(key+'=='+value)
    pass
#pro==艺术
#school==北影
#排序
dictA={'pro': '音乐', 'school': '北影', 'age': '25'}
print(sorted(dictA.items(),key=lambda d:d[0])) #按照key排序 [('age', '25'), ('pro', '音乐'), ('school', '北影')]
print(sorted(dictA.items(),key=lambda d:d[1])) #按照value排序 [('age', '25'), ('school', '北影'), ('pro', '音乐')]

5. 共有方法 + * in

合并+  字符串 列表 元组

strA='人生苦短'
strB='我用Python'
print(strA+strB) #人生苦短我用Python
listA=[1,2]
listB=[3,4]
print(listA+listB) #[1, 2, 3, 4]
tupleA=(1,2,'1')
tupleB=(3,4,'2')
print(tupleA+tupleB) #(1, 2, '1', 3, 4, '2')

复制*  字符串 列表 元组

strA='人生苦短'
print(strA*3) #复制 人生苦短人生苦短人生苦短
listB=[3,4]
print(listB*3) #[3, 4, 3, 4, 3, 4]
tupleA=(1,2,'1')
print(tupleA*5) #(1, 2, '1', 1, 2, '1', 1, 2, '1', 1, 2, '1', 1, 2, '1')

判断是否存在in  字符串 列表 元组 字典

strA='人生苦短'
print('人' in strA) #True
print('NI' in strA) #False
listA=[1,2]
print(2 in listA) #True
dictD={'name':'Jane','age':'20'}
print('name' in dictD) #True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值