python学习各数据结构中的函数总结

#数据结构总结
##1.字符串


```python
name = "my \tname is {name} and i am {year} old"

print(name.capitalize()) # 将字符串的首字母大写
print(name.count("a")) # 判断字符串中的"a"的数目
print(name.center(50,"-")) # 先判断字符串的长度到没到50,若没到就将字符串居中,两边以"-"补齐到50
print(name.endswith("ex")) # 检查字符串是否以"ex"结尾,返回bool值
print(name.expandtabs(tabsize=30)) # 定义将tab转为多少个空格
print(name[name.find("name"):]) # 从左向右寻找"name",并返回"n"的索引值(这里为4),再取字符串切片[4:]
print(name.format(name='alex',year=23)) # 格式化输出,将字符串中带有{}的值替换
print(name.format_map(  {'name':'alex','year':12}  )) # 以类于字典的方式替换字符串中的值
print('ab23'.isalnum()) # 判断字符串是否为阿拉伯数字和字母
print('abA'.isalpha()) # 判断字符串是否只由字母组成
print('1A'.isdecimal()) # 判断字符串是否为十进制数
print('1A'.isdigit()) # 判断其是否为整数
print('a 1A'.isidentifier()) # 判读是不是一个合法的标识符
print('33A'.isnumeric()) # 检测字符串是否只由数字组成
print('My Name Is  '.istitle()) # 判断字符串中单词是否满足标题格式(单词首字母是否大写)
print('My Name Is  '.isprintable()) #tty file ,drive file,判断字符串是否可以打印
print('My Name Is  '.isupper()) # 检测字符串中是否全为大写字母
print('+'.join( ['1','2','3'])  )# 使用字符串将列表中的元素连接起来
print( name.ljust(50,'*')  ) # 末端补齐 
print( name.rjust(50,'-')  ) # 首端补齐
print( 'Alex'.lower()  ) # 将字符串全部转为小写
print( 'Alex'.upper()  ) # 将字符串全部转为大写
print( '\nAlex'.lstrip()  ) # 删除字符串左边的空格
print( 'Alex\n'.rstrip()  ) # 删除字符串右边的空格
print( '    Alex\n'.strip()  ) # 删除字符串两端的空格
p = str.maketrans("abcdefli",'123$@456') #将"abcdefli"中的各字母用相对应的后面的数字和符号代替,应用于加密等
print("alex li".translate(p) ) # 将字符串"alex li"传输到p中,翻译成了密码

print('alex li'.replace('l','L',1)) # 从左向右将字符串中的第一个l换为L,若最后一个参数为2,则代表置换前两个l,以此类推
print('alex lil'.rfind('l')) # 从尾到首查找l,并返回查找到的第一个l的索引值(注意一个空格为两个字符)
print('1+2+3+4'.split('+')) # 以split('参数')里的参数来分割字符串并将其转为一个列表(字符串庞大时不建议使用)(默认使用空格来分割)
print('1+2\n+3+4'.splitlines()) # 以换行符分割字符串(多此一举,用上面那个就可以,但是在不同系统中使用时这个可以自动识别换行符)
print('Alex Li'.swapcase()) # 将大写变为小写,将小写变为大写
print('lex li'.title()) # 将字符串转为标题格式,各单词的首字母大写
print('lex li'.zfill(50)) # 字符串长度若不满50,则用0在首端补齐至50
str = 'abc'
print(str[::-1]) # 将字符串反转

#将字符串高亮显示打印的方法
print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m" %(p_item,salary) )#字体高亮显示,31代表红色,32代表绿色

print("\033[41;1m你的余额只剩[%s]啦,还买个毛线\033[0m" % salary)#字体的背景填充高亮显示,41代表红色,42代表绿色


##2.列表

import copy
names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"]
print(names[0:-1:2]) # 列表的切片,从开始到结束,步长为2
print(names[::2]) # 列表的切片,从开始到结束,步长为2
print(names[:]) # 打印整个列表
#range(1,10,2)


name2 = copy.deepcopy(names)# 深拷贝,完全复制一份
print(names)
print(name2)
names[2] = "向鹏" # 列表的更改值
names[3][0] ="ALEXANDER" # 子列表值的更改

print(names)
print(name2)
names.append("LeiHaidong") #列表值的增加,在末尾加
names.insert(1,"ChenRonghua") # 增加元素,在当前列表索引为1之前的位置
names.insert(3,"Xinzhiyu") #增加元素,在当前列表索引为3之前的位置



names.remove("ChenRonghua") # 根据元素的值进行删除
del names[1]  #根据下标进行列表元素的删除
names.pop(1) #与上一个相同
print(names)
print(names.index("XieDi")) # 返回查找元素值的索引
print(   names[names.index("XieDi")]   )

print(names.count("ChenRonghua")) # 统计列表中元素为该值的数量
names.clear() # 清空列表
names.sort() # 按字母由小到大的顺序对列表进行排序
names.reverse() # 将列表逆置
names.sort(reverse = True) # 将列表中的元素按从大到小的顺序排列
print(names)
names2 = [1,2,3,4]
#names
names.extend(names2) # 列表的拼接
del names2
print(names,names2)

"a" in names # 判断元素是否存在于列表中
"a" not in names  # 判断元素是否不存在于列表中
list*n # 重复n次列表的内容
list1 + list2 # 合并两个列表的内容

#列表的遍历
for i in names:
    print(i) 
#列表的遍历
#方法一
for index,item in enumerate(list):
	print(index,item)
#方法二
for item in list:
	print(list.index(item),item)


#补充:

 	exit()是一种退出程序的方法





##3.元组
一种元素不可被改变的特殊列表

##4.字典
无序且键的值唯一

info.pop('key')  # 删除
del info['key']
info.popitem()#删除字典中最后一个键值对
info.get('key') # 查找(安全获取)
print('key' in info) # 判断数据是否存在于字典中

#多级字典的嵌套及操作
print(info[key1][key2])
info.values()#打印所有值
info.keys()#打印所有键
info.setdefault('taiwan',{'www.baidu.com':[1,2]})#若有taiwan这个key就返回他对应的value值,要是没有就新建一个键值对,键为taiwan,值为其后跟随的值
dir = {'a':1,'b':2,'c':3}
print(dir)
>>>{'a': 1, 'b': 2, 'c': 3}
print( dir.setdefault('d',{'abc':[1,2]}))
>>>{'abc': [1, 2]}
print(dir)
>>>{'a': 1, 'b': 2, 'c': 3, 'd': {'abc': [1, 2]}}

info.update(info1)#合并两个字典
info.items()#将字典转为列表
info.fromkeys()#通过一个列表生成默认字典(少用)(浅拷贝,多个key共享一个value)
info.clear()#清空字典

c = dict.fromkeys([6,7,8],[1,{"name":"cay"},444])
print(c )
>>>{6: [1, {'name': 'cay'}, 444], 7: [1, {'name': 'cay'}, 444], 8: [1, {'name': 'cay'}, 444]}
c[7][1]['name'] = "Jack Chen"
print(c)
>>>{6: [1, {'name': 'Jack Chen'}, 444], 7: [1, {'name': 'Jack Chen'}, 444], 8: [1, {'name': 'Jack Chen'}, 444]}
#发现所有值都变了,浅拷贝。。




#字典的遍历
#方法一
for i in info:
	print(i,info[i])
#方法二
for k,v in info.items():
	print(k,v)
#注:法一比法二高效,法二需要先将字典转为列表


##5.集合

list_1 = [1,4,5,7,3,6,7,9]
list_1 = set(list_1)

list_2 =set([2,6,0,66,22,8,4])
print(list_1,list_2)

#交集
print(list_1.intersection(list_2))

#并集
print(list_1.union(list_2))

#差集 in list_1 but not in list_2
print(list_1.difference(list_2))
print(list_2.difference(list_1))

#子集
list_3 = set([1,3,7])
print(list_3.issubset(list_1))#list3是否为list1的子集
print(list_1.issuperset(list_3))#list1是否为list3的父集

#对称差集
print(list_1.symmetric_difference(list_2))#除去二者交集外的剩余元素

print("-------------")

list_4 = set([5,6,7,8])
print(list_3.isdisjoint(list_4)) # Return True if two sets have a null intersection.

#交集
print(list_1 & list_2)
#union
print(list_2 | list_1)

#difference
print(list_1 - list_2) # in list 1 but not in list 2

#对称差集
print(list_1 ^ list_2)

list_1.add(999) #在集合中添加一个元素
list_1.update([888,777,555]) #添加列表中的元素至集合中
print(list_1)

print(list_1.pop())#从集合中删除一个值,并返回删除的值是多少
print(list_1.pop())
print(list_1.pop())
print(list_1.pop())

list_1.discard(888)#从集合中删除该值,但无任何返回值
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值