Day14作业及默写

1.整理今天所学内容,整理知识点,整理博客。

pass

2.画好流程图。

pass

3.都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出):

pass

4.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb

name=['oldboy','alex','wusir']
list(map(lambda x:'sb',name))

5.用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾

l=[{'name':'alex'},{'name':'y'}]
list(map(lambda x:x['name']+'sb',l))

6.用filter来处理,得到股票价格大于20的股票名字

shares={
    'IBM':36.6,
    'Lenovo':23.2,
   'oldboy':21.2,
    'ocean':10.2,
 }
 ```
 ```python
 list(filter(lambda x:x[1] >20, shares.items()))
 ```

##7.有下面字典,得到购买每只股票的总价格,并放在一个迭代器中。
###结果:list一下[9110.0, 27161.0,......]
```python
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}]
def Total(portfolio):
    for total in portfolio:
        ret = yield total['shares'] * total['price']
    return ret
lst = list()
TotalMoney = Total(portfolio)
for money in TotalMoney:
    lst.append(money)
print(lst)

#TypeII

g = [ i['shares' * i ['price'] for i in portfolio ]
# list(g)

8.还是上面的字典,用filter过滤出单价大于100的股票。

list(filter(lambda x:x['price']>100,portfolio))

9.有下列三种数据类型,

l1 = [1,2,3,4,5,6]
l2 = ['oldboy','alex','wusir','太白','日天']
tu = ('**','***','****','*******')

###写代码,最终得到的是(每个元祖第一个元素>2,第三个*至少是4个。)
[(3, 'wusir', '****'), (4, '太白', '*******')]这样的数据。
list(filter(lambda x:x[0]>2 and len(x[-1])>=4,zip(l1,l2,tu)))

10.有如下数据类型:

 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}]

将l1按照列表中的每个字典的values大小进行排序,形成一个新的列表。

l2 = sorted(l1,key=lambda x:x['sales_volumn'])
print(l2)

11.求结果

v = [lambda :x for x in range(10)]
print(v) #10个lambda的内存地址
print(v[0]) #第一个lambda的内存地址
print(v[0]()) #索引都为 9

12.求结果

v = (lambda :x for x in range(10))
print(v) #一个生成器的内存地址
print(v[0]) #报错
print(v[0]()) #报错
print(next(v)) #第二个生成器的内存地址
print(next(v)()) #11

13.有两个字符串列表,a和b,每个字符是由逗号分隔的一些字符,(升级题)尽量做得支持扩展

a = [
'a,1',
'b,3,22',
'c,3,4',
'f,5',
]
b=[
'a,2',
'b,4',
'd,2',
'e,12',
]

按每个字符串的第一个值,合并a和b到c

c = [
'a,1,2',
'b,3,22,4',
'c,3,4',
'd,2',
'e,12',
'f,5'
]
data = {i[0]:i for i in a} #将a这个列表转换成字典,字典的键就是元素中的一个,值就是元素
for em in b:
    if data.get(em[0]):
        #判断b的每一个元素的第一个位置不在字典中
        data[em[0]] += em[1:]
        #通过键找到值,然后将值和b相加
    else:
        data[em[0]] = em
        #键不再data这个字典中,就直接添加一个键值对
print(list(data.values()))
#将这恶个字典中的值求出
上一篇:Java Web快速入门——全十讲


下一篇:四则运算 Java (于泽浩,袁浩越)