条件:
if condition1:
statement1
elif condition2:
statement2
......
else conditionN:
statementN
判断条件的省略用法:
string 空字符串为False, 非空字符串解析为True
int 0解析为False,非0解析为True
list/tuple/dict/set Iterable为空解析为False,其余解析为True
object None解析为False,其余解析为True
循环:
for item in <Iterable>: # 只要是可迭代的集合,都可以用for ... in 可迭代集合: 进行遍历
****
例如:l = [1,2,3,4]
for item in l:
print(item)
字典,比较特殊,只有key是可迭代的。
例如:d = {'name':'李刚','age':30,'sex':'男'}
for item in d: # 只能遍历键
print(d) # 结果是 name age sex
想要遍历字典的值:
for item in d.values(): # d.values() 是 dict_values()对象
print(item) # 结果: 李刚 30 男
编列字典的键值对:
for item in d.items(): # d.items() 是 dict_items()对象
print(item) # 结果 (‘name’,'李刚’) ('age',30) ('sex','男')
利用索引来遍历:
d = [1,2,3,4]
for i in range(len(l)):
print(d[i])
利用enumerate()函数来遍历:
for i,item in enumerate(d):
if i > 5:
print(item)
while循环
while condition:
statement
高级表达: 条件与循环并行的简洁表达
# 遍历 Iterable中每一个元素,给定1个条件判断语句,2种可能的结果表达式
expression1 if condition else expression for i in Iterable # 结果是一个生成器(generator)
[generator] : 把生成器变成列表
# 遍历Iterable中每一个元素,1个条件判断,1中可能结果
expression for i in Iterable if condition # 结果:也是一个 generator
#两个循环嵌套
x = [1,2,3,4]
y = [1,2,5,6]
# x 为 外层循环 , y为内层循环
result = [(a,b) for key in x for value in y if a != b]
例子:
已知 y = x^2 + 5 ,x = [1,2,3,4,5] ,求y
y = [i**2+5 for i in x]
要求:将两个列表,将attributes作为键,与values中每个列表中的值,两两对应组成一个字典,输出为一个字典组成的列表
attributes = ['name', 'dob', 'gender']
values = [['jason', '2000-01-01', 'male'],
['mike', '1999-01-01', 'male'],
['nancy', '2001-02-01', 'female']]
# expected output:
[{'name': 'jason', 'dob': '2000-01-01', 'gender': 'male'},
{'name': 'mike', 'dob': '1999-01-01', 'gender': 'male'},
{'name': 'nancy', 'dob': '2001-02-01', 'gender': 'female'}]
#单条语句
y =[dict(zip(attributes,value)) for value in values]
# 多层循环
s = []
for value in values:
item = {}
for index,key in enumerate(attributes):
item[key] = value[index]
s.append(item)