列表生成式练习一

基于列表生成式

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

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

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

p_some_l  = []
p_some_l = [p_python for x_linux in linux for p_python in python if x_linux == p_python]
print(p_some_l) #[‘钢弹‘, ‘小虎比‘]

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

1 l_not_py = [x_linux for x_linux in linux if x_linux not in python]
2 print(l_not_py)#[‘小壁虎‘, ‘alex‘, ‘wupeiqi‘, ‘yuanhao‘]

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

py_no_l = [p_python for p_python in python if p_python not in linux]
print(py_no_l) # [‘dragon‘, ‘zhejiangF4‘]

列表 l=[10,2,3,4,5,6,7]

1、得到一个新列表l1,新列表中每个元素是l中对应每个元素值的平方

l = [10,2,3,4,5,6,7]
l1= [x * x for x in l ]  #把迭代对象迭代并返回自乘方的一个新列表
tmp = [x for x in l1 if x > 40] # [100, 49]  #筛选出大于40的值
print(tmp)
print (l1) #[100, 4, 9, 16, 25, 36, 49]

2、过滤出l1中大于40的值,然后求和

print(sum(tmp)) #149   #对刚才使用者产生的新表【100,49】求和

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

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

dicg = ((i,v) for i ,v in shares.items()) #定制生成器
P = [i[0] for i in dicg if float(i[-1]) > 30] # [‘huawei‘, ‘lenovo‘, ‘oldboy‘, ‘IBM‘, ‘ocean‘]
print(P) # [‘IBM‘, ‘huawei‘]

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

dicg = ((i,v) for i ,v in shares.items())
P_price = (i[-1] for i in dicg)
print(sum(P_price)) #127.5
 
时间: 2024-09-30 00:16:53

列表生成式练习一的相关文章

python 列表生成式

列表特性:列表是一次性生成的 a = [1,2,3,4,5,6,7,8,9] 或 [ i*2 for i in range(10)]  ###--->列表生成式 ===[2,4,6,8,10,12,14,16,18,20]=== 两个列表的区别: 1列表是写死的,2列表可以里面做一些操作把相应的东西输出出来 列表生成式目的是为了使代码更简洁,且可以实现更复杂的功能,如将i的值传至函数中 [fun(i)  for i in range(10)] 生成式:通过生成式可以直接创建一个列表,但受内存大小

python的一些高级特性(列表生成式)

列表生成式 如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做? >>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方: >>> [x * x for x in range(1, 11) if x % 2 == 0] [4, 16, 36, 64, 100] 还可以使用两层循环,可以生成全排列

列表生成式,迭代器&生成器

一.列表生成式 用例--使列表数值都加上1 1 li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 li_tmp = [i+1 for i in li] 3 li = li_tmp 4 print("new list:"+str(li)) #[1, 2, 3, 4, 5, 6, 7, 8, 9,10] li_dic =  [{1:3+i,2:4+i} for i in range(5)] #[{1: 3, 2: 4}, {1: 4, 2: 5}, {1: 5,

列表生成式、生成器、迭代器

一句话概念 列表生成式--可以直接在列表里进行运算 生成器--一边循环一边计算的机制,称为生成器:generator(就是生成一个不运行的函数或者列表,即数据流) 第二句:生成器与列表的区别--生成器你不知道长度,就是一个数据流:list.dict.str你知道长度 迭代器--可以被next()函数调用并不断返回下一个值的对象称为迭代器 第二句:可迭代对象--可以直接作用于for循环的对象统称为可迭代对象:Iterable 第三句:生成器一定是迭代器,迭代器不一定是生成器 列表生成式 data

使用PYTHON列表生成式过滤数据

python的列表生成式是一个很有用生成列表(List)的表达式.其中一个应用是作为列表的过滤器使用 例如 从一个列表中过滤掉奇数使用下面的语句就可以 [item for item in [1,2,3,4,5,6,7] if item % 2 == 0] 反过来,去掉偶数也是同样的道理 [item for item in [1,2,3,4,5,6,7] if item % 2 != 0]

python之列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)): >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环: >>> L = []

列表生成式、生成器、迭代

一.列表生成式 1.range()可以生成整数序列 range(a,b)生成a-b的整数序列,包括a,但不包括b range(n)生成0-n的整数序列,包括0,但不包括n 将整数序列转成list,可以使用list(range(n)) 2.可以在列表中加计算式生成特定规律的列表 [x*x for x in range(1,11)]就生成了[1x1,2x2,3x3,...,10x10]的列表 3.还可以使用多层循环生成列表 [m+n for m in 'ABC' for n in 'XYZ'] [变

python学习日常-切片&迭代&列表生成式

切片:顾名思义,就是将一个东西切成一块一块的,python中的切片就是将数组切成一片一片的 L=list(range(1,100)); L(f:e:p)#f代表开始切的位置,e代表结束的位置(但不包括),p代表切的间隔. 比如L(10:26:2)代表从第10位开始切(即从数字为11开始)到26结束(即数字27),但是不包括第26位,其中间隔为2. 切片也支持从后面切比如L(-10:-1:none)就是从倒数第10位开始切到最后一位. 值得注意的是切片的三个参数都是可以缺省的. 迭代:非常简单的一

学习7: 列表生成式,生成器,迭代器,可迭代对象

1) 列表生成式,即创建列表的方式 列表生成式,这里是中括号[] >>> [x*x for x in range(0,10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> [x * x for x in range(1, 11) if x % 2 == 0] [4, 16, 36, 64, 100] >>> [m + n for m in 'ABC' for n in 'XYZ'] ['AX', 'AY', 'AZ

生成器,迭代器,列表生成式,随机数

1.生成器 1.1                                                                        2016-09-22   18:52:55 生成器是一次生成一个值的特殊类型函数.可以将其视为可恢复函数.调用该函数将返回一个可用于生成连续x值的生成器[Generator],简单的说就是在函数的执行过程中,yield语句会把你需要的值返回给调用生成器的地方,然后退出函数,下一次调用生成器函数的时候又从上次中断的地方开始执行,而生成器内