基础数据类型
int:1,3 加减乘除等计算:
+(加) - (减)*(乘) /(除) //(整除)
str:存储少量的数据,进行简单的操作
索引:
x = 'wanliang'
x[2] --> n
切片:
x = 'wanliang'
x[2:5] --> nli
步长
x = 'wanliang'
x[2:5:2] --> ni
反取/反取加步长
x = 'wanliang'
x[5:2] --> ail
x = 'wanliang'
x[5:2:-2] --> al
格式化:
%
表示占位符
%s
表示字符串和整数
%d
表示整数
示例:
x = 'my name is %s, i am %d years old' % ('wanliang', 23)
%% 第一个%对第二个%转义
常用方法:
capitalize 首字母大写
x = 'wanliang' x.capitalize() 'Wanliang'
swapcase 大小写翻转
x = 'WanLiang' x.swapcase() 'wANlIANG'
title 每个单词的首字母大写
x = 'wan liang' x.title() 'Wan Liang'
center 内容居中,总长度,空白填充
x = 'study' x.center(30, '-') '------------study-------------'
count 统计字符出现的次数
x = 'wanliang' x.count('a') 2
expandtabs 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
x = 'wanliang\t' x.expandtabs() 'wanliang '
startwith endwith 以...开头 以...结尾,正确为True,错误为False
x = 'wanliang' x.startswith('w') True x.endswith('g') True
find 查找字符的索引
x = 'wanliang' x.find('i') 4
split 以...为分隔,str转换为list
x = 'wan liang' x.split(' ') ['wan', 'liang']
replace 替换
x = 'wan liang' x.replace('liang', 'xxx') 'wan xxx'
format 格式化
x = 'i love {0}, {0} make me happy' x.format('study') 'i love study, study make me happy'
strip 去除首尾空格、\t、换行符
x = ' wanliang ' x.strip() 'wanliang'
is系列
name.isalnum() 字符串由字母或数字组成
name.isalpha() 字符串只由字母组成
name.isdigit() 字符串只由数字组成
x = 'wanliang123' x.isdigit() False x.isalpha() False x.isalnum() True
list:[1,3,'sad',True...] 存储大量的数据
增
append 追加元素
x = [1, 2, 3] x.append('wan') print(x) [1, 2, 3, 'wan']
insert 选择索引位置插入
x = [1, 2, 3] x.insert(1, 'wan') print(x) [1, 'wan', 2, 3]
extend 迭代为最小元素追加到列表
x.extend([11, 22, 33]) print(x) [1, 2, 3, 11, 22, 33]
删
pop 按索引删除,有返回值
x = [1, 2, 3] y = x.pop() print(x, y) [1, 2] 3
remove 按元素删
x = [1, 2, 3] x.remove(3) print(x) [1, 2]
clear 清空列表
x = [1, 2, 3] x.clear() print(x) []
del
1.删除列表
x = [1, 2, 3] del x print(x) Traceback (most recent call last): File "<input>", line 1, in <module> NameError: name 'x' is not defined
2.按照索引删除
x = [1, 2, 3] del x[0] print(x) [2, 3]
3.按照切片删除
x = [1, 2, 3] del x[0:2] print(x) [3]
改
1.按索引修改
x = [1, 2, 3] x[2] = 'wan' print(x) [1, 2, 'wan']
2.按切片修改(会先清空区域内元素,再迭代加入新元素'a', 'd', 's', 'a', 'a'到区域内,不需要数量相等)
x = [1, 2, 3] x[0:2] = 'wan' print(x) ['w', 'a', 'n', 3]
查
1.按索引查
x = [1, 2, 3] x[0] 1
2.按切片查
x = [1, 2, 3] x[0:2] [1, 2]
常用方法:
len 列表长度
x = [1, 2, 3] len(x) 3
count 统计元素出现的次数
x = [1, 2, 3, 3, 3] x.count(3) 3
index 元素的索引值
x = [1, 2, 3] x.index(3) 2
sort 排序
x = [1, 3, 6, 2, 4] x.sort() print(x) [1, 2, 3, 4, 6]
x.sort(reverse=True) 反序
x = [1, 3, 6, 2, 4] x.sort(reverse=True) print(x) [6, 4, 3, 2, 1]
reverse 翻转
x = [1, 3, 6, 2, 4] x.reverse() print(x) [4, 2, 6, 3, 1]
列表嵌套:
l1 = [1, 2, 'alex', ['WuSir', 'taibai', 99], 6] l1[2] = l1[2].capitalize() l1[3][0] = l1[3][0].upper() l1[3][2] = str(l1[3][2] + 1) print(l1) [1, 2, 'Alex', ['WUSIR', 'taibai', '100'], 6]
range
range迭代
for i in range(0, 5): print(i)
01 2 3 4
range加步长
for i in range(0, 5, 2): print(i)
0 2 4
range反取加步长
for i in range(5, 0, -2): print(i) 5 3 1
tuple 元组,只读列表 从属于元组的元素不能改,元素内的元素可能可以改,比如元组内的列表
x = ('wan', 'liang')
x[1] = 'xxx' Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
x = ('wan', 'liang', [1, 2, 3]) x[2][2] = 'xxx' print(x) ('wan', 'liang', [1, 2, 'xxx'])
dict:{'name': 'alex'}查询速度快(二分查找),存储的是关系型数据
字典:键必须唯一,不可重复,value可以为任意数据类型或对象
3.5版本包括.5之前都是无序的
字典的键只能是不可变的数据类型
增
dic['key'] = 'value' 有key修改,无key添加
x = {'name': 'wanliang', 'age': 18} x['name'] = 'alex' print(x) {'name': 'alex', 'age': 18} x['hobby'] = 'girl' print(x) {'name': 'alex', 'age': 18, 'hobby': 'girl'}
dic.setdefault('key') 有key不修改,无key添加
x = {'name': 'wanliang', 'age': 18} x.setdefault('name', 'alex') 'wanliang' print(x) {'name': 'wanliang', 'age': 18} x.setdefault('hobby', 'girl') 'girl' print(x) {'name': 'wanliang', 'age': 18, 'hobby': 'girl'}
删
pop 返回value
x = {'name': 'wanliang', 'age': 18} y = x.pop('name') print(x, y) {'age': 18} wanliang
dic.pop('key', None) 删除不存在的key时,不加None会报错
x = {'name': 'wanliang', 'age': 18} y = x.pop('hobby') Traceback (most recent call last): File "<input>", line 1, in <module> KeyError: 'hobby' y = x.pop('hobby', None) print(x, y) {'name': 'wanliang', 'age': 18} None
popitem 随机删除一个,返回一个包含被删除的键值对的元组
x = {'name': 'wanliang', 'age': 18} x.popitem() ('age', 18) print(x) {'name': 'wanliang'}
clear 清空字典
x = {'name': 'wanliang', 'age': 18} x.clear() print(x) {}
del
1.删除整个字典
x = {'name': 'wanliang', 'age': 18} del x print(x) Traceback (most recent call last): File "<input>", line 1, in <module> NameError: name 'x' is not defined
2、按照key删除
x = {'name': 'wanliang', 'age': 18} del x['name'] print(x) {'age': 18}
改
update
dic2.update(dic) 把dic给dic2,dic中的key在dic2中无则添加,有则修改
x = {'name': 'wanliang', 'age': 18} y = {'name': 'alex', 'hobby': 'girl', 'job': 'teacher'} x.update(y) print(x) {'name': 'alex', 'age': 18, 'hobby': 'girl', 'job': 'teacher'}
查
get 当访问的key不存在时,可设置默认值
x = {'name': 'wanliang', 'age': 18} x.get('name') 'wanliang' x.get('hobby', 'study') 'study'
dic.keys() 所有的键,类似列表的容器,可循环,没有索引
x = {'name': 'wanliang', 'age': 18} x.keys() dict_keys(['name', 'age'])
dic.values() 所有的值,类似列表的容器,可循环,没有索引
x = {'name': 'wanliang', 'age': 18} x.values() dict_values(['wanliang', 18])
dic.items() 返回包含keys和values的两个元组
x = {'name': 'wanliang', 'age': 18} x.items() dict_items([('name', 'wanliang'), ('age', 18)])
比较运算:
优先级:() > not > and > or
0为False
非0为True
and
x and y if x 为真,取x; if x 为假,取y
x or y 和and相反
1 > 3 and 2 < 4 --> x为False,取y,y为True
3 > 4 and 4 < 3 --> x为False,取y,y为False
True or Fale --> x为True,取y,y为Fasle
所以条件语句走else,打印False
if 1 > 3 and 2 < 4 or 3 > 4 and 4 < 3: print(True) else: print(False)
数据类型的补充: 在循环一个列表时,不要改变列表的大小,这样会影响结果 在循环一个字典时,不要改变列表的大小,这样会影响结果