PT--lambda+sorted+filter+map+递归+二分法

 

 

# 4. 用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
name=['oldboy','alex','wusir']
m = map(lambda el:el+"_sb",name)
print(list(m))


# 5.用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
l = [{'name':'alex'},{'name':'y'}]
m = map(lambda el:el['name']+'sb',l)
print(list(m))

# 6,用filter来处理,得到股票价格大于20的股票名字
shares={
       'IBM':36.6,
       'Lenovo':23.2,
      'oldboy':21.2,
    'ocean':10.2,
    }
f =filter(lambda el:shares[el]>20,shares) # shares取得的是键, el为键
print(list(f))




# 7.有下面字典,得到购买每只股票的总价格,并放在一个迭代器中。
#   结果:list一下[9110.0, 27161.0,......]
portfolio = [
    {'name': 'IBM', 'shares': 100, 'price': 91.1},
    {'name': 'AAPL', 'shares': 50, 'price': 543.22},
    {'name': 'FB', 'shares': 200, 'price': 21.09},
    {'name': 'HPQ', 'shares': 35, 'price': 31.75},
    {'name': 'YHOO', 'shares': 45, 'price': 16.35},
    {'name': 'ACME', 'shares': 75, 'price': 115.65}
]
m = map(lambda el:el['shares']*el['price'],portfolio)
print(list(m))


# 8. 还是上面的字典,用filter过滤出单价大于100的股票。
portfolio = [
    {'name': 'IBM', 'shares': 100, 'price': 91.1},
    {'name': 'AAPL', 'shares': 50, 'price': 543.22},
    {'name': 'FB', 'shares': 200, 'price': 21.09},
    {'name': 'HPQ', 'shares': 35, 'price': 31.75},
    {'name': 'YHOO', 'shares': 45, 'price': 16.35},
    {'name': 'ACME', 'shares': 75, 'price': 115.65}
]
f = filter(lambda el:el['price']>100,portfolio)
print(list(f))


# 9. 有下列三种数据类型,
#   写代码,最终得到的是(每个元祖第一个元素>2,第三个*至少是4个。)
#     [(3, 'wusir', '****'), (4, '太白', '*******')]这样的数据。
l1 = [1,2,3,4,5,6]
l2 = ['oldboy','alex','wusir','太白','日天']
tu = ('**','***','****','*******')
# 将三种数据类型之间的元素进行组合,得到元组的列表
def func(a,b,c):
    li = []
    for i in a:
        for j in b:
            for k in c:
                li.append((i,j,k))
    return li
lst = func(l1,l2,tu)
# 筛选出第一个元素大于2和第三个元素长度大于4的
m = filter(lambda el: el[0] > 2 and len(el[2]) >= 4, lst)
print(list(m))


# 10.将l1按照列表中的每个字典的values大小进行排序,形成一个新的列表。
l1 = [ {'sales_volumn': 0},
        {'sales_volumn': 108},
        {'sales_volumn': 337},
        {'sales_volumn': 475},
        {'sales_volumn': 396},
        {'sales_volumn': 172},
        {'sales_volumn': 9},
        {'sales_volumn': 58},
        {'sales_volumn': 272},
        {'sales_volumn': 456},
        {'sales_volumn': 440},
        {'sales_volumn': 239}]
s = sorted(l1,key=lambda el:el['sales_volumn'])
print(s)

 

posted @ 2018-08-15 17:36  葡萄想柠檬  Views(142)  Comments(0)    收藏  举报
目录代码