# goods = [
# {"name": "电脑", "price": 1999},
# {"name": "鼠标", "price": 10},
# {"name": "游艇", "price": 20},
# {"name": "美女", "price": 998},
# ]
# print('first'.center(40,'='))
# for i,m in enumerate(goods):
# index = i
# mygoods = m['name']
# myprice = m['price']
# print('序号为:{},\t 商品名称:{},\t 商品价格:{}'.format(index,mygoods,myprice))
#
# print('second'.center(40,'='))
#
# for i in range(len(goods)):
# index = i
# mygoods = goods[i]['name']
# myprice = goods[i]['price']
# print('序号为:{},\t 商品名称:{},\t 商品价格:{}'.format(index, mygoods, myprice))
#
# print('third'.center(40,'='))
# for good in goods:
# index = goods.index(good)
# mygoods = good['name']
# myprice = good['price']
# print('序号为:{},\t 商品名称:{},\t 商品价格:{}'.format(index, mygoods, myprice))
'''匿名函数lambda arg1 ,arg2:expression
map filter(函数,迭代对象) reduce(函数,迭代对象,基数)
map(); 遍历输出
filter(); 遍历输出,筛选过滤
reduce()累计的,直接返回结果,可以指定基数,需要导包from functools import reduce
sorted(iterable,key,reverse)和.sort()的区别:
sorted()排序时不影响原数据,产生新的排序数据,有返回值
.sort()对原有列表进行排序,改变原来列表的顺序,无返回值
排序字符串按ascii的大小
'''
from functools import reduce
print('map'.center(40,'-'))
m = map(lambda x:x*2+1,range(1,11))
for i in m:
print(i)
print('filter'.center(40,'-'))
# 输出1到100里平方根是整数的数
import math
result = filter(lambda a:math.sqrt(a) % 1 == 0,range(1,101))
for i in result:
print(i)
print('reduce'.center(40,'-'))
result = reduce(lambda x,y:x+y,range(1,11),50)
print(result)
print('拓展'.rjust(4,'-'),'输出1到100里平方根是整数的数'.center(20,'-'))
for i in range(1,11):
if i * i <= 100:
print(i*i)
# print('--------------------')
# 下面没写好呢
# for i in range(1,i+1):
# for j in range(1,11):
# if i == j * j:
# print(i)
# .strip()
# str1 = 'sjis dij s'
# str = str1.strip('s')
# print(str)
# print(str1)
print('---------.sort()和sorted()----------')
li = ['ap','s','D','An']
lis = [1,3,6,8,9,0,2]
li.sort(key=str.lower,reverse=True)
newli = sorted(li,key=str.lower)
print('.sort()------',li,'key=str.lower忽略大小写,reverse=True从大到小排列')
print('sorted()-----',newli,'key=str.lower忽略大小写,reverse默认从小到大排列')