学习的过程真的有点缓慢,坚持不要从入门到放弃哈哈!
正题开始
2.1 dictionary(字典)
字典是键值对的组合key-value
字典是无序的
info = { "student1101" : "baih", "student1102" : "yangm", "student1103" : "tianxd", } print(info) 打印结果: {'student1103': 'tianxd', 'student1101': 'baih', 'student1102': 'yangm'} Process finished with exit code 0可以看到结果,打印出来的是没有顺序的。
循环字典,打印key 和 value
for i in info : print(i,info[i])还有一个方法,但是没有这个效率高
for k,v in info.items(): print(k,v)
将两个字典合并
info = { "student1101" : "baih", "student1102" : "yangm", "student1103" : "tianxd" } b = { "student1101" : "zhouxf", "student1104" : "yuezz", "student1105" : "wangj", } info.update(b) print(info)打印结果:{'student1103': 'tianxd', 'student1101': 'zhouxf', 'student1102': 'yangm', 'student1104': 'yuezz', 'student1105': 'wangj'}特点:如果两个字典有相同的key,那么就更新key所对应的value;如果两个字典没有相同的key,就创建新的key-value
把字典转换成列表:将字典的key-value 组合在一起,变为列表
print(info.items()) 打印结果: dict_items([('student1101', 'baih'), ('student1103', 'tianxd'), ('student1102', 'yangm')])
创建一个新字典,key是列表里面的值,value是后面的值
c = dict.fromkeys([1,2,3],"value")打印结果:{1: 'value', 2: 'value', 3: 'value'}根据key,查找对应value
print(info.get("student1101")) 正常查找打印结果:baih print(info.get("studen")) 这个查找方法安全,当没有这个key,时候返回none打印结果:None print("stu1101" in info) 这个方法,当没有这个key时候,返回false打印结果:False根据key,查找对应value
print(info["student1101"])这个查找方法,必须要求key存在,否则程序直接报错
修改key对应的值
info["student1101"] = "白晗"
删除
del info["student1101"] 方式一 info.pop("student1101") 方式二 info.popitem() 随机删除
2.2列表
循环列表
for i in names : print(i)获取元素
print(names[0])切片:
特点:顾头不顾尾
names = ["laoda", "erge", "zhangsan", "zhaosi", "wangwu", "zhaoliu"] print(names[1:3])打印结果:['erge', 'zhangsan']从下标1->3的元素 按照顾头不顾尾原则 取下标2、3的元素下标为负数:
方向与正数相反,从后面的元素向前面的取
print(names[-1])打印结果:zhaoliu print(names[-3:])打印结果:['zhaosi', 'wangwu', 'zhaoliu'] 当第一个是0时候,可省略print(names[0:3]) print(names[:3]) 打印结果: ['laoda', 'erge', 'zhangsan'] ['laoda', 'erge', 'zhangsan']按照步长切片
print(names[::2]) print(names[0:-1:2]) 打印结果: ['laoda', 'zhangsan', 'wangwu'] ['laoda', 'zhangsan', 'wangwu']两种方式结果一样
列表的扩展
names2 = [1,2,3,4] names.extend(names2) print(names)打印结果:['laoda', 'erge', 'zhangsan', 'zhaosi', 'wangwu', 'zhaoliu', 1, 2, 3, 4]删掉整个list
del names2删掉列表中的元素
del names[1] 删除下标为1的元素 names.remove("zhangsan") 删除具体元素 names.pop() 默认删除最后一个元素 names.pop(1) 删除具体下标中的元素查找具体元素的下标
print(names.index("zhaoliu"))查找某个元素在列表里的个数
print(names.count("laoda"))清空列表
names.clear()列表元素反转
names.reverse()给列表排序
names.sort()排序的优先级:特殊符号>数字>大写字母>小写字母
列表追加元素
names.append("hahhaha")插入元素
names.insert(0,"nidaye")插入的位置,插入的元素
修改元素的值
names[1] = "nihao"
列表的copy
浅copy:从打印结果看出,当names2中元素也是列表的时候,子列表中的元素会随着修改而修改
可以理解为浅copy只是指针的copy
names = ["Songjiba", "xiangpeng", "hanqiang",["tom","jerry"], "zhonghua","wanghaihang"] names2 = names.copy() names2[3][0] = "hhah" print(names) print(names2) 打印结果:['Songjiba', 'xiangpeng', 'hanqiang', ['hhah', 'jerry'], 'zhonghua', 'wanghaihang']['Songjiba', 'xiangpeng', 'hanqiang', ['hhah', 'jerry'], 'zhonghua', 'wanghaihang']
如果想要深copy,需要引入一个系统库
names2 = copy.deepcopy(names)
2.3 字符串处理
首字母大写
name = "bh is a big boy an he is handsome" print(name.capitalize())打印结果:Bh is a big boy an he is handsome打印某个字符串的数量
name = "bh is a big boy an he is handsome" print(name.count("h"))打印结果:3
中间展示字符串,第一个参数字符串数量,第二个参数,不够用"字符"补全
name = "bh is a big boy an he is handsome" print(name.center(50,"*"))打印结果:********bh is a big boy an he is handsome*********判断字符串 最后以什么字符串结尾
name = "bh is a big boy an he is handsome" print(name.endswith("some"))打印结果:True查找字符串中的包含字符串索引(只查找第一次出现的字符串索引),如果没有打印结果是-1
name = "bh is a big boy an he is handsome" print(name.find("is")) 打印结果: 3字符串切片
name = "bh is a big boy an he is handsome" print(name[name.find("bh"):15]) 打印结果: bh is a big boy字符串的格式化
name = "{name} is a big boy an he is {age} old" print(name.format(name = "baihan", age = 22)) 打印结果:baihan is a big boy an he is 22 old 格式化另一种格式print(name.format_map({"name" : "baih", "age" : 21}))判断字符串是否为纯英文(必须是纯英文才会返回True,空格等任何字符都不可以)
name = "bhisabig" print(name.isalpha())判断是否为十进制
name = "222" print(name.isdecimal())判断是否为整数
name = "22" print(name.isdigit())判断是否为合法的标识符
name = "fjd_ds1" print(name.isidentifier())判断是否为小写
name = "fjdds1" print(name.islower())判断是否为大写
name = "RRRR" print(name.isupper())判断是否为空格
name = " " print(name.isspace())判断每个单词首字母是否为大写
name = "Baihan Is Big Boy" print(name.istitle())看结果体会
print("+".join(["1","2"]) 打印结果: 1+2第一个参数字符串长度,第二个参数不够在右侧补齐的字符
name = "Baihan Is Big Boy" print(name.ljust(50,"*"))打印结果:Baihan Is Big Boy*********************************与上面的相反
name = "Baihan Is Big Boy" print(name.rjust(50, "*"))打印结果:*********************************Baihan Is Big Boy大写转小写
print("ADF".lower())小写转大写
print("sda".upper())将字符串转化为相应的字符,必须一一对应
p = str.maketrans("abcdef","12345-") print("ai eaf".translate(p))打印结果:1i 51-字符串替换 第一个参数为old 第二个参数为new 第三个参数为替换数量
print("hello world".replace("l","L",3))打印结果:heLLo worLd将字符串按照某个字符 分隔为 列表
print("Baih is a big boy".split())打印结果:['Baih', 'is', 'a', 'big', 'boy']小写转大写 大写转小写
print("hellp gFDl".swapcase())
转载于:https://www.cnblogs.com/iOSWithPython/p/7954337.html