python列表生成式和if语句、if...else语句、map结合使用
文章目录:
python列表生成式,就是通过一行代码语句生成一个列表,非常的方便快捷
1 python列表生成式
python列表生成式
的语句机构如下:
[expression for x in iterable_object]
expression
:是一个表达式,里面对循环变量x
的一些操作x
:是循环变量iterable_object
:是一个可迭代的对象,这样才可以做循环
例子:对迭代对象[0, 1, 2, 3, 4]中的每一个元素做平方
if __name__ == '__main__':
print([x**2 for x in range(5)])
# 输出结果
[0, 1, 4, 9, 16]
2 python列表生成式和if语句结合使用
python列表生成式
和if语句
结合的机构如下:
[expression for x in iterable_object if condition]
expression
:是一个表达式,只有满足if条件,才会对循环变量x
进行表达式expression中的操作x
:是循环变量iterable_object
:是一个可迭代的对象,这样才可以做循环condition
:是if语句的判断条件,只有满足condition
的循环变量才会执行expression
例子:对迭代对象[0, 1, 2, 3, 4]中大于2的元素做平方
if __name__ == '__main__':
print([x**2 for x in range(5) if x > 2])
# 输出结果
[9, 16]
3 python列表生成式和if…else语句结合使用
python列表生成式
和if...else语句
结合的机构如下:
[expression1 if condition else expression2 for x in iterable_object ]
expression1
:一个表达式,只有满足if条件,才会对循环变量x
进行表达式expression1中的操作expression2
:一个表达式,只有不满足if条件,才会对循环变量x
进行表达式expression2中的操作x
:是循环变量iterable_object
:是一个可迭代的对象,这样才可以做循环condition
:是if语句的判断条件,只有满足condition
的循环变量才会执行expression1
,否则执行expression2
例子:对迭代对象[0, 1, 2, 3, 4]中大于2的元素做平方,小于2的做立方
if __name__ == '__main__':
print([x**2 if x>2 else x**3 for x in range(5)])
# 输出结果
[0, 1, 8, 9, 16]
4 python生成表达式和zip函数结合使用
python生成表达式
和zip函数
结合的结构如下:
[expression for x, y in zip(list1, list2)]
例如:我们有两个列表,把名字和性别配对,然后生成一个列表
if __name__ == '__main__':
list1 = ["Tom", "Jack", "Will", "July"]
list2 = ["man", "man", "man", "woman"]
print([(name, sex) for name, sex in zip(list1, list2)])
# 或 对表达式进行一些更复杂的操作(甚至可以调用一些函数)
print(["名字:{}, 性别{}:".format(name, sex) for name, sex in zip(list1, list2)])
# 输出结果
[('Tom', 'man'), ('Jack', 'man'), ('Will', 'man'), ('July', 'woman')]
['名字:Tom, 性别man:', '名字:Jack, 性别man:', '名字:Will, 性别man:', '名字:July, 性别woman:']