一 、列表
name = ['zhangshan', 'lishi', 'wangwu']# 列表赋值
name.append('liujun')# 增,默认增加到最后位置
name.insert(1, 'chensan')# 插入到制定索引位置
name.remove(name[0])# 删除指定值,而且只从左边开始删除一次
name.pop(1)# 弹出指定索引的值,默认弹出最后一个
name.clear()# 清空列表里的值,变成空列表
del name # 删除变量
a = [x for x in range(10)]# 列表解析 [0,1,2,3,4,5,6,7,8,9]
name.count('liujun')# 计数,指定值出现的次数
name.extend(['haha', 'hehe'])# 批量增加,只要是可迭代的对象都可以用这个方法
name.index('liujun')# 返回该值的索引的位置
name.sort(reverse=True)# 从小到大排序
len(name)# 取列表的长度
name.reverse() # 反转
print(name[1:-1])# 列表切片
print(name[-1::-1])#
二、元组
a = (1,2,3)# 不可变类型,无法修改
b = tuple([4,5,6])
tu = (123, 456, ['aa', 'ddf', {'k1': '00', 'k2': '11'}]) # 元组的元素不可以被修改,但是元素里面的内容可以被修改,
不可变类型:整型a=123,字符型a=str,元组a=(1,2,3,)
三、字典
字典是无序的,没有索引值
di = dict((('name','liujun'),('age','23'),('like','game')))# 用dict函数创建字典
di = {'name':'liujun','age':'23','like':'game'}# 直接创建
增
di = {}
di['job'] = 'IT'
di.setdefault('aaa','bbb')# 如果键存在则返回这个键值,否则添加进去
查
print(di['name'])# 打印指定键的值
print(list(di.keys()))# 把所有键名转换成列表输出
print(list(di.values()))# 把所有值转换成列表输出
print(list(di.items()))# 把所有的键值对转换成对应的元组[('like', 'game'), ('job', 'IT'), ('age', '23'), ('name', 'liujun')]
di.get('age') # 通过get方法获取指定键的值,没有这个键就返回None 。可以get一个默认值di.get('age123','hehe')
改
di['age'] = '20' # 修改指定键名的值
di.update(ci)# 更新,把字典ci合并到di,如果有相同的键就覆盖掉
删
di.clear()# 清空字典,变成空字典
del di['name']# 删除指定的键值对
del di# 删除整个字典
di.pop('age')# 弹出指定键的值
其他方法
di = dict.fromkeys(['s1','s2','s3'],'ss')# 交叉创建字典
print(sorted(di))# 对键名从小到大排序
for v in di:# 遍历字典
print(v,di[v])# 同时输出键和值
for k,v in di.items():# 转成一对对元组再遍历
print(k,v)
可变类型:列表a=[1,2,3],字典a={‘str:liu’, ‘aa:ee’}无序列关系
四、集合
集合特性:去掉重复值,关系测试
a = set([1,2,3,4,5])# 创建可变集合,这种方式是把列表转换成集合
aa = frozenset([6,7,8,9,10])# 创建不可变集合
aaa = {1, 2, 3, 4, 5} # 这也是一种创建集合的方法
增
a.add('liu')# 字符串当做一个整体增加进集合
a.update(['jun'])# 合并;列表形式中的字符串也是一个整体
a.update('jun')# 这个会拆分成单个字符增进集合
删
a.remove('liujun')# 删除指定值
a.clear()# 清空,变成空集合
print(a.pop())# 弹出一个值,由于集合也是无序,所以随机弹出
del a# 删除变量
a.discard(2) # 删除指定值,如果没有这个值也不会报错
关系测试
a = set([1,2,3,3,4,5,5])
b = set([3,5,7,8,9])
print(a.intersection(b)) # 交集
print(a & b) # {3, 5}
print(a.union(b)) # 并集
print(a | b) # {1, 2, 3, 4, 5, 7, 8, 9}
print(a.difference(b)) # 差集
print(a - b) # {1, 2, 4}
a.difference_update(b) # 直接改变自身,不生成新集合
print(a.symmetric_difference(b)) # 对称差集
print(a ^ b) # {1, 2, 4, 7, 8, 9}
print(a.issuperset(b)) # 父集;a是否完全包含b
print(a > b) # False
print(a.issubset(b)) # 子集
print(b < a)# False
五、字节类型
#!/usr/bin/env python
# -*- coding:utf-8 -*-
s = '刘俊'
m = bytes(s, encoding='utf-8') # 指定编码格式
print(m) # b'\xe5\x88\x98\xe4\xbf\x8a' 转换成十六进制
for i in m:
print(i) # for默认十进制输出
# 229
# 136
# 152
# 228
# 191
# 138
for i in m:
print(bin(i)) # 二进制输出
# 0b11100101
# 0b10001000
# 0b10011000
# 0b11100100
# 0b10111111
# 0b10001010
b = str(m, encoding='utf-8') # utf-8 中文占3个字节 , gbk中文占2个字节
六、其他常用方法
enumerate
for k,v enumerate(name,1): # 枚举,给定起始值
print(k,v)
range
print(range(1,10)) # range在python3里面是创建了一个生成器对象。python2里面是一个完整的列表,xrange和python3的一样
for i in range(1,10,2): # 指定步长取出range生成的值
print(i)
id
li = ['123', '456']
print(id(li)) # 显示li在内存中的地址
七、三目运算
#!/usr/bin/env python
# -*- coding:utf-8 -*-
flag = True
a = 'haha' if flag else 'hehe' # 三目运算
print(a) # haha