python学习基础知识二之字典及字符串操作

python学习基础知识二

知识点1:

元组
a=("A","b",32)
元组和列表都是有序对象集合,但是元组是只读,不能修改其值
如果元组只有一个值一般在第一个值后面加逗号,否则不被认为是元组(eg: (32,))
读取元组的值也是用切片方式获取
a[1:2] 结果是(b,)

字典
dict={"name":"hellen","age":"23","hobby":"music"}
字典是python中唯一的映射类型,采用键值对形式,字典是无序存储,key必须是不可变类型,不可修改key
不可变数据类型有:整形,字符串,元组
可变类型:列表,字典(字典的值)

字典创建方式
1)dic1={"name":"alex"} #常用创建方式
2)dic2=dict((("name","alex"),)) 返回结果是:{'name': 'alex'}

字典的增加/修改 #如果键存在,修改键对应的值,不存在则创建新键
dic1={"name":"alex"}
dic1["age"]=23 返回的结果是{"name":"alex","age":23}
dic1["name"]="hellen" 返回结果是{"name":"hellen"}
dic1.setdefault('hobby','music') 返回结果{"name":"alex",'hobby':'music'}//如果键存在不修改,如果不存在新建一个键,且有返回值为键对应的实际值
dic2={"age":23,"num":"11"}
dic1.update(dic2) #将dic2的值加入到dic1中,如果有相同的key,则更新时会覆盖原来的值,dic1返回结果是{"name":"alex","age":23,"num":"11"}

字典的读取 #通过键的方式获取到值
dic1={"name":"alex","age":23}
dic1["name"] #返回的结果是alex
dic1.keys() #获取字典中的所有键
print(dic1.keys())返回结果是dict_keys(['age', 'name']) 不是列表
如果想转换成列表用list(dic1.keys()) 进行转换
dic1.values() #返回字典中的所有值,返回结果是 dict_values([23, 'alex'])
dic1.items() #返回所有键值对,返回结果是 dict_items([('age', 23), ('name', 'alex')])

字典的删除
dic1={"name":"alex","age":23}
del dic1["name"] # 删除name及键值对 返回结果是{"age":23}
dic1.clear() #清空字典,最后返回结果是空字典{}
dic1.pop("age") #删除age键值对并返回删除的值
dic1.popitem() #随机删除一组键值对

字典的其他操作
dic33=dict.fromkeys(["host1","host2"],"test") #返回的结果是{'host2': 'test', 'host1': 'test'}
dic3={"1":"23","6":"67","2":"44"}
dic3.copy() #字典的浅拷贝
dic3.deepcopy() #字典的深拷贝
sorted(dic3) #字典的排序,根据键来排序 ['1', '2', '6']
sorted(dic3.items()) #也是根据键来排序 [('1', '23'), ('2', '44'), ('6', '67')]
sorted(dic3.values()) #根据值来排序 ['23', '44', '67']
字典的遍历:
for i in dic3: #速度快推荐使用此方式
print(i,dic3[i]) #返回字典的所有键和值

遍历方法二:
for i,v in dic3.items():
print(i,v)

字符串相关操作
a='123' 用单引号和或双引号括起来的任意文本内容
a*2 重复输出字符串,结果是123123
a[1:] 利用切片获取子字符串 结果是23
1 in a 判断某个字符是否在字符串中

字符串拼接
a='123' b='abc'
c=a+b //字符串拼接,返回结果是123abc (占内存,不建议使用)
c=''.join([a,b]) 将a,b拼接,用前面的空字符串进行连接
c='--'.join([a,b]) 用--将a,b进行连接 ,结果是123--abc

字符串内置方法
st='hello world'
print(st.count('l')) #统计某个字符串个数,结果是3
print(st.capitalize())#字符串首字母大写,返回结果是Hello world
print(st.center(20,'-'))#字符串居中,不够20长度两边用-补充 返回结果是----hello world-----
print(st.endswith('y')) #判断是否以某个字符串结尾,返回结果是布尔值, False
print(st.startswith('he')) #判断是否以某个字符串开头,返回结果是布尔值, False
print(st.expandtabs(tabsize=5)) #如果字符串中有\t,设置字符串中\t的值 默认是4个空格,通过tablesize 可修改
print(st.find('w')) #查找到字符串中第一个元素并返回索引值,结果是6

st= 'hello world {name} '
print(st.format(name='lucy')) #格式化输出,将字符串中{name} 替换成对应的值lucy,结果是hello world lucy
print(st.format_map({'name':'lily'})) #格式化输出,将字符串中{name} 替换成对应的值lily,结果是hello world lily
print(st.index('w')) # 找某个字符所在的索引,结果是6,如果找不到报错
print(st.isalnum()) # 判断字符串是否包含字母和数字,结果是False 因为里面包含{}
print('AF'.isdecimal()) # 判断字符串是否是十进制的数,结果是False
print("123.45".isdigit()) # 判断字符串是否是数字,结果是False ,必须是整型
print("123.45".isnumeric()) # 判断字符串是否是数字,结果是False ,必须是整型
print("123.45".isdigit()) # 判断字符串是否是数字,结果是False ,必须是整型
print("123abc".isidentifier()) # 判断字符串是否非法变量,不能是字母开头
print("123abc".islower()) # 判断字符串是否全部小写 True
print("Aabc".isupper()) # 判断字符串是否全部大写 False
print("My Title".istitle()) # 判断字符串是否全部大写是标题,每个单词首字母大写 True
print("Aabc".lower()) # 将所有字符变为小写 aabc
print("Abc".isupper()) # 将所有字符变为大写 ABC
print("Abc".swapcase()) # 将所有字符反转,大写变小写,小写变大写 aBC
print(" Abc ".strip()) # 去除字符串两边的空格
print("Abc ".rstrip()) # 去除字符串右边的空格
print(" Abc".lstrip()) # 去除字符串左边的空格
print("Abcde".replace("de","test")) # 替换字符串中某一部分货全部内容,结果是Abctest
print("My test test".rfind('t')) # 从字符串右边往左找某个字符说真的位置,结果是11
print("My test test1".split(' ')) # 将字符串以空格分隔,结果是list :['My', 'test', 'test1']
print("".join("My test test1".split(' '))) #将列表变为字符串,结果是 Mytesttest1


猜你喜欢

转载自www.cnblogs.com/hellen-2018/p/9485228.html