1.可变类型与不可变类型
- 不可变:整形,字符串,元组
- 可变类型:列表,字典
2.字典
a={"key1":value,"key2":value2,} b=dict((['key1',value1],['key2',value2]))
哈希(无序) key是不可变类型 value随便a[key1]
查a.get(key1)
查a.get(key1,value)
如果没有key1 返回value 否则如实返回a['key3']='新增一组键值对'
增a.setdefault('age','也是增,有的不改')
a.keys()
查看键,返回不是列表可以转换成列表a.values()
查看所有的值 如上a.items()
拿出所有的键值对,做成元祖a.update(b)
把b里面的所有键值对放到a里面,相同的key更新del a['key3'] a.clear()
a.pop('age')
有返回a.popitem()
随机删除dic1=dict.fromkeys(['host1','host2','host3'],'统一赋值')
- 字典可以嵌套
sorted(dic)
根据键排序 返回列表for i in dic1:
循环遍历键
3.字符串
a='123'
创建‘123’*2
重复字符串a[1:3]
切片'er' in 'ersf'
返回True False'%s输出 %d' %('格式化输出',23)
c=a+b #效率低
拼接'此链接符拼接'.join([a,b,c])
a.count('出现的次数')
好像kmp啊a.capitalize()
首字母大写a.center(50,'-')
居中 其他用符号补全a.endwith('是否以其结尾')
返回 True Falsea.startswith('开头')
开头a.expandtabs(tabsize=3)
设定\t 的长度a.find(‘t’)
查找位置 第一个a='有意思的{name} {age}'.format(name='格式化输出',age=123)
st.format_map({'name':'格式化输出',‘age’=123})
格式输出a.index('adf')
像是find 但是没有就报错a.isalnum()
是否只包括字母和数字a.isdecimal()
是否只包括数字a.isdigit()
是否是一个整形a.isidentificial()
·判断是否是合法标识符a.islower()
判断是否都是小写a.isupper()
判断是够是大写a.isspace()
判断是否是空格a.istitle()
·判断是否是标题a.lower()
变小写a.upper()
变大写a.swapcace()
大小写反转a.ljust(50,'*')
左补全a.rjust(50,‘×’)
有补全a.strip()
去掉左右的空格,换行,制表符,中间的不去除a.lstrip()
只去掉左边的a.rstrip()
只去掉右边的a.replace('有的','其他的',3)
替换次数a.rfind(‘查找’)
从右向左找a.split(‘ ’)
分割,返回列表a.rsplit(' ',1)
从右往左 分割多少次a.title()
变成标题格式
4.字符编码
- 二进制
- ASCII 只能存英语和 拉丁字符
- gb2312 只有6700多个中文 1980
- gbk1.0 存2万多个字符
- gb8030 27000个中文
- unicode utf-32: 4字节
- unicode utf-16: 2字节或者以上
- utf-8 英文用ASCII存 中文3个字节
5.中国计算机用的是gbk
6.计算机里中间语言是 unicode ,encode to unicode,then decode to GBK
a.decode('utf-8') #unicode向下兼容
b.encode('GBK')