Python基础——推导式

推导式:

定义:推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列

一.列表推导式:

1.基本格式: 变量名 = [表达式 for 临时变量 in 列表]

2.练习: 将lst中每一个元素进行平方后放入到一个新列表中

一般方法:

lst = [1,2,3,4]
new_lst = []

for i in lst:
    
    num = i*i
    
    new_lst.append(num)

print(new_lst)

输出结果:[1,4,9,16]

列表推导式:

lst = [1,2,3,4]

new_lst = [i*i for i in lst]

print(new_lst)

输出结果:[1,4,9,16]

求出lst 中是奇数的值,然后放入到一个新列表中

一般方法:

lst = [1,2,3,4,5,6,7,8]
new_lst = []

for i in lst:
   
    if i %2==1:
        
        new_lst.append(i)

print(new_lst)

输出结果:[1,3,5,7]

列表推导式:

lst = [1,2,3,4,5,6,7,8]

new_lst = [i for i in lst if i%2==1]

print(new_lst)

输出结果:[1,3,5,7]

将一个嵌套列表转换成一个一维列表:

一般方法:

lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_lst = []

for lst1 in lst:
    
    for i in lst1:
        
        new_lst.append(i)

print(new_lst)

输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

列表推导式:

lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

new_lst = [i  for lst1 in lst for i in lst1]

print(new_lst)

输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

# 现在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]
# 要求出1/4/7  和 1/5/9 元素,思考如何取出

一般方法取1,4,7

lst = [[1,2,3],[4,5,6],[7,8,9]]

new_lst = []

for i in range(len(lst)):

    ret = lst[i][0]        # 利用切片

    new_lst.append(ret)

print(new_lst)

输出结果:[1,4,7]

列表推导式:

lst = [[1,2,3],[4,5,6],[7,8,9]]


new_lst = [lst[i][0]for i in range(len(lst))]

print(new_lst)

输出结果:[1,4,7]

一般方法取 1,5,9

lst = [[1,2,3],[4,5,6],[7,8,9]]

new_lst = []

for i in range(len(lst)):

    ret = lst[i][i]

    new_lst.append(ret)

print(new_lst)

输出结果:[1,5,9]

列表推导式:

lst = [[1,2,3],[4,5,6],[7,8,9]]

new_lst = [lst[i][i]for i in range(len(lst))]

print(new_lst)

输出结果:[1,5,9]

 

二.字典推导式:

1.格式:

变量名 = {表达式 for 临时变量  可迭代内容}

2.练习:

将字典中的key 和value 进行对换

一般方式:

dic = {'k1':20,'k2':30}

new_dic = {}

for key,value in dic.items():

    new_dic[value] =key

print(new_dic)

输出结果: {20: 'k1', 30: 'k2'}

字典推导式:

dic = {'k1':20,'k2':30}


new_dic ={value:key for key,value in dic.items()}

print(new_dic)

输出结果: {20: 'k1', 30: 'k2'}

三.集合推导式:

集合推导式跟列表推导式非常相似,唯一区别在于用{}代替[]

练习:

# 计算列表中 每个值得平方,自动去重
lst = [-2,3,-3,5]

set1 = {i**2 for i in lst}

print(set1)

输出结果:{4,9,25}

猜你喜欢

转载自blog.csdn.net/weixin_43567965/article/details/86020279