字典使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字典使用相关的知识,希望对你有一定的参考价值。

name = "a \t allon"
print(name.capitalize()) #capitalize 首字母大写
print(name.count(‘l‘)) #count 统计a的数目
print(name.center(50,"-")) #50个字符,不够的用-两边补上 --------------------a allon---------------------
print(name.endswith("a")) #endswith,判断以什么结尾
print(name.expandtabs(tabsize=30)) #把上面的tab键转成多少个空格
print(name[name.find("allon"):]) #find找到字符串的位置,可以配合切片
names="tell {name},age is {user_old}"
print(names.format(name="xiaoming",user_old=22)) #.format 格式化
print(names.format_map({"name":"xiaoming2","user_old":23}))
print("abc123!".isalnum()) #isalnum 判断是否字母和数字
print("abc123".isalpha()) #isalpha判断是否纯英文字符
print("abc123".isdecimal()) #isdecimal判断是否只包含十进制字符
print("abc123".isdigit()) #常用isdigit,判断是否整数
print("abc123".isidentifier()) #isidentifier判断是不是一个合法的标识符(相当,合法的变量名)
print("abc123".islower()) #islower判断是否小写
print("abc123".isnumeric()) #isnumeric判断是否只有数字,小数点再里面也不行
print("abc123".isspace()) #.isspace判断是否空格
print("abc123".istitle()) #.istitle判断是否每个单词 首字母是否大写
print("abc123".isprintable()) #isprintable判断是否可以打印,大部分是判断tty driver文件
print("abc123".isupper()) #isupper,判断是否大写
print("abc123".join("====")) # 常用 =abc123=abc123=abc123=
print("+".join(["1","2","3","4"])) #数字转成字符串,1+2+3+4
print(name.ljust(50,"*"))# 保证长50,不够用后面*补齐;a allon*****************************************
print(name.rjust(50,"*"))# 保证长50,不够用前面*补齐;*****************************************a allon
print("LOW".lower())#lower把大写变小写 low
print("abc".upper())#upper把小写变大写 ABC
print("\nabc\n".lstrip()) #lstrip去掉左边的空格和回车
print("\nabc\n".rstrip()) #rstrip去掉右边的空格和回车
print("\n abc\n".strip())#strip去掉两边的空格和回车 abc。这个用的最多

p = str.maketrans("abcdefg",‘5123167‘)
print("administration".translate(p)) #相当于加密,解密,把maketrans中的字符,传输到translate里面 53ministr5tion

print("administration".replace("i","I")) #把大写I替换i admInIstratIon

print("administration".replace("i","I",1)) #把大写I替换i ,换一个admInistration

print("administration".rfind("i")) #从左向右数,找到最右侧那个的下标 11

print("ad min is tra tion".split()) #把字符串按空格分成列表[‘ad‘, ‘min‘, ‘is‘, ‘tra‘, ‘tion‘]
print("administration".split("i")) #把字符串按i分成列表[‘adm‘, ‘n‘, ‘strat‘, ‘on‘] 但i就没了
print("1+2+3+4".split("+")) #[‘1‘, ‘2‘, ‘3‘, ‘4‘],数字就提取出来了
print("1+2\n+3+4".splitlines()) #splitlines 按换行来分,相当.split("/n") [‘1+2‘, ‘+3+4‘]

print("administraTion".swapcase()) #.swapcase 大小写切换ADMINISTRAtION
print("abc hdc by".title()) #单词的头字母大写 Abc Hdc By
print("abc hdc by".zfill(50)) #指定字符数,不够的用0补位0000000000000000000000000000000000000000abc hdc by



print("---")

‘‘‘
+++++++++++++++++++++++
‘‘‘
info = {
"stu001":"2Liming",
"stu002":"1Liming2",
"stu003":"5Liming3"
}

b ={
"stu001":"bcdddd"
1:3
2:5
}

info.update(b) #update上传字典,里面有的覆盖,没有的创建

#print(info["stu002"]) #查找,不常用,如果key里没有,就会出错
print(info.get("stu005")) #常用,查找,没有就会显示None

print("stu0005"in info) #info.haskey("0005") in py2.x


info["stu002"] = "3liming" #修改
info["stu005"] ="33lizhang" #增加
#del info["stu005"] #删除
#info.pop("stu005") #删除
#info.popitem() #随机删


print(info)
‘‘‘
#多级字典嵌套及操作

py_catalog ={
"欧美":{
"www.youporn.com":["免费的","世界最大","内容一般"],
"www.pornhub.com":["很多免费","内容比上面网站好点"],
"letmedothistoyou.com":["开源","免费","更新慢"],
"x-art.com":["高质量","收费"]
},
"日韩":{
"japanest":["big","yesllon","open"]
},
"大陆":{
"www.1024.com":["big","small","quick"]
}
}
py_catalog["大陆"]["www.1024.com"][2] = "q"
py_catalog.setdefault("台湾",{"www.taiwan.com":["1","a","b"]}) #.setdefault去字典里面查找,如果有返回,没有则赋予新值
print(py_catalog["大陆"])
print(py_catalog.values()) #.values打印所有的值
print(py_catalog.keys()) #.keys打印所有的key
c = dict.fromkeys([6,7,9],[1,{"name":"li ming"},555]) #初始化一个新的字典
c[7][1]["name"] = "chenlong" #{6: [1, {‘name‘: ‘chenlong‘}, 555], 7: [1, {‘name‘: ‘chenlong‘}, 555], 9: [1, {‘name‘: ‘chenlong‘}, 555]}
#可见,用dict.fromkeys初始化时,除非只有一层数据,否则第二层共享一个内存,导致第二层数据会全部修改

print(c) #{6: ‘test‘, 7: ‘test‘, 9: ‘test‘}/{6: [1, {‘name‘: ‘li ming‘}, 555], 7: [1, {‘name‘: ‘li ming‘}, 555], 9: [1, {‘name‘: ‘li ming‘}, 555]}

print(py_catalog.items()) #把字典转成列表,key变成元组,value


++++++++++++++++++++++++++++++++++++++++++
info = {
"stu001":"2Liming",
"stu002":"1Liming2",
"stu003":"5Liming3"
}
#建议使用
for i in info:
print(i) #只打印key
print(i,info[i]) #打印value info[i]

for k,v in info.items():
print(k,v)

#第二种效率会低,info.items转成元组,k key v value,循环。而第一种是通过key作为索引循环。
#数据量大的时候,反应会很慢

以上是关于字典使用的主要内容,如果未能解决你的问题,请参考以下文章

Python ❀ 字典

Python ❀ 字典

c# 多线程字典 - 使用一组新的值最佳实践刷新实时字典。创建新的字典,还是逐项重新加载旧的字典? [关闭]

8.7 创建密码字典

Python字典

第28讲:Python中字典对象的核心概念以及使用案例