列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式。
列表生成式的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。列表表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。在这个以if和for语句为上下文的表达式运行完成之后产生,返回结果将是一个新的列表。
variable = [out_exp for out_exp in input_list if out_exp == 2]
#1.生成一个列表,列表元素分别为 [1 * 1, 2 * 2, 3 * 3……n * n],假设n = 10。
#1.生成一个列表,列表元素分别为 [1*1,2*2,3*3……n*n],假设n = 10。
# 一般写法
list1 = []
for i in range(1,11):
list1.append(i * i)
print(list1)
#列表生成式
list2 = [i * i for i in range(1,11)]
print(list2)
#输出
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
#2. 生成一个列表,列表元素分别为 [1*1,2*2,3*3……n*n],假设n = 10。
# 要求返回的序列中不存在偶数项
#列表生成式
list2 = [i * i for i in range(1,11) if i % 2 != 0]
print(list2)
# 将上面的代码翻译一下,就和下面代码一个意思:
list3 = []
for i in range(1, 11):
if i % 2 != 0:
list3.append(i*i)
print(list3)
#输出
[1, 9, 25, 49, 81]
[1, 9, 25, 49, 81]
#3. 字符串s1 ='ABC',字符串 s2 = '123',要求:生成序列 A1 A2 A3 B1 B2 B3 C1 C2 C3
list1 = [i + j for i in 'ABC' for j in '123']
print(list1)
# 将上面的代码翻译一下,就和下面代码一个意思:
list1 =[]
for i in 'ABC':
for j in '123':
list1.append(i + j)
print(list1)
将3x3的矩阵list转化成一个数组(列表),且使该数组中仅仅包含偶数:
list =[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
'''
将3x3的矩阵list转化成一个数组(列表),且使该数组中仅仅包含偶数:
list =[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
'''
list =[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print([itme2 for itme1 in list for itme2 in itme1 if itme2 %2 == 0])
# 将上面的代码翻译一下,就和下面代码一个意思:
list2 = []
for itme1 in list:
for itme2 in itme1:
if itme2 % 2 == 0:
list2.append(itme2)
print(list2)
#输出
[2, 4, 6, 8]
[2, 4, 6, 8]
如
users = [User(i, display_policy) for i in range(config.CLIENT_NUM)]
User(i, display_policy) 是一个函数
根据自己的功能不同,函数位置 不同