Python实操

  有两个列表,分别存放报名学习linux和python课程的学生名字

    linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']

    python=['dragon','钢弹','zhejiangF4','小虎比']

  问题一:得出既报名linux又报名python的学生列表

l1 = [i for i in linux if i in python ]
print(l1)
-------输出结果-------
['钢弹', '小虎比']

  问题二:得出只报名linux,而没有报名python的学生列表

l1 = [i for i in linux if i not in python]
print(l1)
----------------输出结果------------------
['小壁虎', 'alex', 'wupeiqi', 'yuanhao']

  问题三:得出只报名python,而没有报名linux的学生列表

l1 = [i for i in python if i not in linux]
print(l1)
---------输出结果---------
['dragon', 'zhejiangF4']

  shares={ 'IBM':36.6, 'lenovo':27.3, 'huawei':40.3, 'oldboy':3.2, 'ocean':20.1 }

  问题一:得出股票价格大于30的股票名字列表

list = [i for i in shares if shares[i] > 30]
print(list)
----------输出结果---------
['IBM', 'huawei']

  另一方法:

print([i for i,j in shares.items() if j > 30])
-----------------输出结果----------------------
    ['IBM', 'huawei']

 问题二:求出所有股票的总价格

list = [shares[i] for i in shares] #把字典所有的values,转成一个列表
print(sum(list)) #打印列表的总和
print(sum([shares[i] for i in shares]) #简写形式
-------输出结果--------
    127.5

  另一种方法:

print(sum([j for i,j in shares.items()]))
------------------输出结果------------------
    127.5

  l=[10,2,3,4,5,6,7] 得到一个新列表l1,新列表中每个元素是l中对应每个元素值的平方 过滤出l1中大于40的值,然后求和

list = [i**2 for i in l if i**2 > 40] #得出取幂后大于40的值的列表
print(sum(list)) #对列表求和
print(sum[i**2 for i in l if i**2 > 40]) #简写形式
--------输出结果--------
    149

  

  

posted @ 2017-04-12 20:31  Michael--chen  阅读(394)  评论(1编辑  收藏  举报