for循环:
for n in range(10):
print(n);
range(0,10) #生成0至10的数字区间,左闭右开,包含0,不包含10。如果第一个数字为0,可以省略。
for 当前取出的值 in 可迭代对象:
要执行的操作
可迭代对象:range返回值,字符串,列表等。
map函数:
注意点:
1.延迟执行:
2.返回的是迭代器对象,且一旦遍历完成,就会被“耗尽”
3.map不会影响元素数量。
filter函数:116节
从一组数据中,筛选出符合条件的元素(过滤),并组成一组新数据。
格式:filter(过滤函数,可迭代对象)
返回可迭代对象,不改变原数据。
场景:过滤一些非法字符
特殊用法:如果不传递过滤函数,那么会自动过滤掉“假值”
data=[0,1,”,’hello’,[],(),5]
result=filter(None,data)
Sorted函数:
对一组数据进行排序,返回一组新数据
语法格式:sorted(可迭代对象,key=XXX, reverse=xxx)
直接返回列表。
数字排序:
按照字符串的长度排序:
names=[‘python’,’sql’,’java’]
result = sorted(names)//根据字符串首字母unicode排序
result = sorted(names, key=lambda n: len(n))
result = sorted(names, key=len)
根据字典中的某个字段进行排序:
max、min函数,也可以传递key参数,用以传递筛选依据。
reduce函数:
将一组数据不断“合并”,最终归并成一个结果
语法格式:reduce(合并函数,可迭代对象,初始值)
需要从functools模块中引入才能使用
#数据统计
nums=[1,2,3,4,5];
def count(a,b):
return a+b;
result = reduce(count,nums)
print(result) #15
#字符串拼接
列表推导式
用一条简洁语法,从可迭代对象中,生成新列表的语法结构。
列表推导式本质上是对 for循环 + append()的一种简写形式。
语法格式:[表达式 for 变量 in 可迭代对象]
带条件的列表推展式: [表达式 for 变量 in 可迭代对象 if n>20]
#字典推导式:
names=[‘张三’,’李四’,’王五’]
scores=[60,70,80]
result = {names[i] : scores[i] for i in range(len(names))}
#集合推导式:
names=[‘张三’,’李四’,’王五’]
result = {n+’!’ for n in names}
#生成器
names=[‘张三’,’李四’,’王五’]
result = (n+’!’ for n in nums)
常用内置函数
一、输入与输出
print(*objects, sep=’ ‘,end=’\n’,file=sys.stdout,flush=False)
字符串P72、73、74
数据容器的角度:字符串就是存放多个字符的容器
字符串支持下标(索引值)
字符串中的字符不可修改
字符串不能嵌套
常用方法:
index方法:获取字符在字符串中第一次出现的下标。
split方法:将字符串按照指定字符进行分隔,并返回一个列表。不改变原字符串,返回全新列表。
replace方法:将字符串中的某个字符串片段,替换成目标字符串。
count方法:统计指定字符在字符串中出现的次数。
strip方法:从某个字符串中删除指定字符串中的任意字符。从字符串两端开始删除,直到遇到第一个不在指定字符串中的字符就停下。
常用内置函数:
len函数:统计字符串中,字符的个数(字符串长度)
字符串循环遍历:while ,for
序列的切片操作:
序列:能连续存放元素的数据容器,元素有先后顺序,且可以通过下标访问。列表、元组、字符串都 是序列。
切片:从序列中按照指定范围,取出一部分元素,形成一个新的序列的操作。
序列[起始索引:结束索引:步长],如list[0:5:1]。最终结果中含起始坐标位置元素,不含结束位置元素。
切片操作不改变原序列,返回新的序列。
超始索引默认值为0,结束位置默认为序列总长度,即最后,步长默认为1. list[::]。结束位置可以大于序列总长度,并不报错。
注意:当始索引大于结束索引时,步长必须为负数,否则结果为空列表。
一个特殊情况:如果同时省略起始和结束位置,如果步长为负数,那么python会对调起始位置与结束位置。
序列的其他操作:相加、相乘
相加 新序列=序列1+序列2
注意:两个同类型的序列才能相加(字符串+字符串,列表+列表,元组+元组)
相乘(重复)新序列 = 序列*n 注意:n必须是整数,不能是浮点数
list1=[10,20,30,40]
result=list1*3 result最终为【10,20,30,40,10,20,30,40,10,20,30,40】