选择结构:
在选择和循环结构中,条件表达式的值为False的情况如下:
False、0、0.0、控制None、空序列对象(空列表、空元组、空集合
空字典、空字符串)、空range、空迭代对象
条件表达式中,不能有赋值操作符"="
选择结构:
在选择和循环结构中,条件表达式的值为False的情况如下:
False、0、0.0、控制None、空序列对象(空列表、空元组、空集合
空字典、空字符串)、空range、空迭代对象
条件表达式中,不能有赋值操作符"="
控制语句:
集合:
集合的底层是字典实现
a={3,5,7}
a.add(9)
a={9,3,5,7}
set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保留一个。
remove()删除指定元素;clear()清空整个集合
集合相关操作:
a|b a.union(b) 并集
a&b a.intersection(b) 交集
a-b a.difference(b) 差集
根据键查找”键值对“底层过程
bin(hash("name"))
序列解包:方便我们对多个变量赋值
s=
name,age,job=s 默认对键进行操作
name,age,job=s.items() 默认对键值对进行操作
s.value() 对值进行操作
r1={"name":"高小一","age":18,"salary":30000,"city":"北京"} r2={"name":"高小二","age":19,"salary":20000,"city":"上海"} r3={"name":"高小五","age":20,"salary":10000,"city":"深圳"} tb=[r1,r2,r3] # 获得第二行人的薪资 print(tb[1].get("salary")) # 打印所有薪资 for i in range(len(tb)): #i-->0,1,2 print(tb[i].get("salary")) for i in range(len(tb)): print(tb[i].get("name"),tb[i].get("age"),tb[i].get("salary"),tb[i].get("city"))
高小一 18 30000 北京
高小二 19 20000 上海
高小五 20 10000 深圳
字典元素的添加修改删除:
a['address']=‘西三旗'
a=['age']=16,覆盖18
undate()将新字典中所有键值对全部添加到旧字典对象上,key有重复直接覆盖
删除
del()
clear()
b=a.pop('age')删除并返回值对象
a.popitem()随机删除并返回值
字典元素的访问:
a['name']
a.get('name')
a.get('sex','一个男人')不存在时返回的值
列出所有的键值对:
a.items()
列出所有的键,列出所有的值
a.keys()
a.values()
len()键值对数
字典:
字典是”键值对“的无序可变序列,字典的每个元素都是一个”键值对“
a={'name':'gaoqi',‘age':18,'job':'programmer'}
dict(name='gaoqi',age='18')
dict([("name","gaoqi"),("age",18)])
k=['name','age','job']
v=['gaoqi',18,'teacher']
d=dict(zip(k,v))
通过fromkeys创建值为空的字典
a=dict.fromkeys(['name','age','job'])
生成器推导式创建元组
s._next_() 单次指针取值
1.元组的核心特点是:不可变序列
2.元组的访问和处理速度比列表快。
3.与整数和字符串一样,元组可以作为字典的键,列表则不能作为字典的键使用。
元组的元素访问和计数:
list.sorted()是修改原列表对象,元组没有该方法只能使用内置函数sorted(tupleObj),并生成新的列表对象。
zip()将多个列表对应位置的元素组成成为元组。并返回这个zip对象。
元组tuple
a=(10,20,30) / a=10.20,30
a=(1,)
tuple()可以接受列表、字符串、其他序列类型、迭代器等生成元组
list()可以接受元组、字符串、其他序列类型、迭代器等生成列表
多维列表:
二维列表
列表的排序:
1.修改原列表
a.sort() 升序排序
a.sort(reverse=True) 降序排序
random.shuffle(a)
2.建新列表的排序
sorted()生成新的对象,默认升序
reversed()返回迭代器,不对原列表做任何修改,只是返回一一个逆序排列对象。(一次遍历)
切片操作:
[:]提取整个列表
[start:] [10,20,30][1:] 结果[20,30]
切片操作超范围不会报错。
列表元素访问和计数:
index(value().[[start],[end]])
count()获得指定元素在列表中出现的次数
len()返回列表的长度,有多少个元素
成员资格判断一般用in
a=[10,20,30]
20 in a
True
列表元素的删除:
del a=[]
a.pop()删除并返回最后一个元素
remove()删除首次出现指定元素,若不存在该元素则抛出异常。
列表元素的增加和删除:
append 列表末尾添加元素
+运算符
a.extend 将目标所有元素添加到本元素末尾
a.insert 将指定元素插入到列表对象的任意位置。
乘法扩展
列表的创建:
基本语法
list
range([start],end,[step])
a=[x*2 for x in range(100) if x%9==0]
序列:
序列中存储的是整数对象的地址,而不是整数对象的值。
【10,20,30,40】
list.append
list.extend
list.insert