推导式与判断
推导式

原始写法:
resutl = []
for i in range(1,10+1): if i % 2 == 0:
resutl.append(i*2)
print(resutl)
列表推导式:
tt = [i*2for i in range(1,10+1)if i % 2 ==0]
print(tt)
判断

a ,b = 10 ,20
print("a大"if a>b "b大" else "相等" a==b "b大")
判断进阶
代码高尔夫评分:92/100 ⛳
for i in range(1,3+1):
score = int(input(
"请输入您的成绩:"
))
print("优秀\n" if score>=98 else ("继续努力!\n" if score>=90 else "废物废物!\n") )
列表推导式 + 嵌套判断
y3 = (1, 2, 3, 4, 5,1,2,3,'11','22','33','11','22')
[list1.append(i) for i in y3 if i not in list1]
print(list1)
y3 = ((1, 2, 3, 4, 5,1,2,3),('11','22','33','11','22'))
集合推导式 + 双重for循环
理解 *: 表示 解包
初版
y3 = (1, 2, 3, 4, 5,1,2,3,'11','22','33','11','22')
list1 = []
for i in y3:
for e in i:
list1.append(e)
print(list1)
推导式-列表
list1 = [{e for i in y3 for e in i}]
>>[{1, 2, 3, 4, 5, '33', '11', '22'}]
list1 = [*{e for i in y3 for e in i}]
>>[1, 2, 3, 4, 5, '33', '11', '22']
推导式-集合
list1 = [*{e for i in y3 for e in i}]
print(list1)
lambda表达式(匿名函数)

lamdba 参数1,参数2 : 输出(return的结果)
#原版
# def f (x):
# return print(x*x)
#使用lamdba表达式
f = lambda x : x*x
print(f(4))
如果加上判断就是
f = lambda x : x print('This is a 0') if % 2 ==0 else print('This is a 1')
带参数的lamdba表达式:
TwoNumberSum = lambda x,y:(x+y)
print(TwoNumberSum(10, 20))
#带默认参数的lambda表达式
func = lambda a=10,b=20,c=30 :(a+b+c)
print(func())
# 带if判断(三目运算符)的lambda表达式
func_2 = lambda a,b : a if a > b else b
func_2(1,2)
练习笔记
students = [
{'name': 'Tom', 'age': 20},
{'name': 'Rose', 'age': 19},
{'name': 'Jack', 'age': 22}
]
lamdba的格式:
# 按name值升序排列
students.sort(key=lambda x:x['name'])
print(students)
# 按name值降序排列
students.sort(key=lambda x:x['name'],reverse=True)
print(students)
# 按age值升序排列
students.sort(key=lambda x:x['age'])
print(students)
#原有的代码格式
def get_name(student):
"""返回学生的姓名"""
return student['name']
字典的展开
把对象封装成字典
class Student(object):
def init(self,name,age):
self.name = name
self.age = age
s_one = Student('zhou_jie_lun',12)
print(s_one.__dict__)
字典的抽取
把字典从对象中抽出来
class Student(object):
def __init__(self,name,age):
self.name = name
self.age = age
d = {"name": 'zhou_jie_lun', 'age': 11}
s_two = Student(**d)
print(s_two.name)
print(s_two.age)
Comments NOTHING