Python学习第二周(Python3.x)

mac2022-06-30  125

学习的过程真的有点缓慢,坚持不要从入门到放弃哈哈!

正题开始

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

最新回复(0)