3.5 Python3 基础 - 循环结构之推导式

>>返回主目录


源码

# 列表推导式
# 练习1:快速创建一个包含元素1~10的列表
# 列表推导式前
list_exercise_1 = []
for i in range(1, 11):
    list_exercise_1.append(i)
print('1列表推导式前:', list_exercise_1)

# 列表推导式后
list_comprehension_1 = [i for i in range(1, 11)]
print('1列表推导式后:', list_comprehension_1)

# 练习2:快速创建一个包含1~10之间所有偶数的列表
# 列表推导式前
list_exercise_2 = []
for i in range(1, 11):
    if i % 2 == 0:
        list_exercise_2.append(i)
print('2列表推导式前:', list_exercise_2)

# 列表推导式后
list_comprehension_2 = [i for i in range(1, 11) if i % 2 == 0]
print('2列表推导式后:', list_comprehension_2)

# 练习3:把一个矩阵列表 list_3 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] ,展平为一个列表
# 列表推导式前
list_3 = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
list_exercise_3 = []
for i in list_3:
    for j in i:
        list_exercise_3.append(j)
print('3列表推导式前:', list_exercise_3)

# 列表推导式后
list_comprehension_3 = [j for i in list_3 for j in i]
print('3列表推导式后:', list_comprehension_3)

# 练习4:把如上矩阵列表,行列转置输出
# 列表推导式前
list_4 = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
list_exercise_out = []
for i in range(len(list_4)):
    list_exercise_in = []
    for j in list_4:
        list_exercise_in.append(j[i])
    list_exercise_out.append(list_exercise_in)
print('4列表推导式前:', list_exercise_out)

# 列表推导式后
list_comprehension_4 = [[j[i] for j in list_4] for i in range(len(list_4))]
print('4列表推导式后:', list_comprehension_4)

# 练习5:在1~10之间的数中,不是3的倍数的数取相反数,其余的翻倍
# 列表推导式前
list_exercise_5 = []
for i in range(1, 10):
    if i % 3 == 0:
        list_exercise_5.append(i * 2)
    else:
        list_exercise_5.append(-i)
print('5列表推导式前:', list_exercise_5)

# 列表推导式后
list_comprehension_5 = [i * 2 if i % 3 == 0 else -i for i in range(1, 10)]
print('5列表推导式前:', list_comprehension_5)

源码

# 集合推导式
# 练习1:用列表words_list = ['Let', 'us', 'study', 'python', 'together', '!']的所有单词的首字母生成一个集合
words_list = ['Let', 'us', 'study', 'python', 'together', '!']
set_comprehension_1 = {i[0] for i in words_list}
print('1集合推导式后:', set_comprehension_1)

# 练习2:快速创建一个包含1-10之间所有偶数的集合
set_comprehension_2 = {i for i in range(1, 11) if i % 2 == 0}
print('2集合推导式后:', set_comprehension_2)

# 练习3:已知列表list_a = [2, 4, 6, 8] 和 list_b = [1, 3, 5],把list_a中的元素分别与list_b中的元素相加,并生成一个集合
list_a = [2, 4, 6, 8]
list_b = [1, 3, 5]
set_comprehension_3 = {i + j for i in list_a for j in list_b}
print('3集合推导式后:', set_comprehension_3)

源码

# 字典推导式
# 练习:将字典input_dict = {'a': 1, 'b': 2, 'c': 'Python'}中键为c的 key 和 value 进行对换
input_dict = {'a': 1, 'b': 2, 'c': 'Python'}

# 字典推导式前
new_dict = {}
for key, value in input_dict.items():
    if key == 'c':
        new_dict[value] = key
print('字典推导式前:', new_dict)

# 字典推导式后
dict_comprehension = {value: key for key, value in input_dict.items() if key == 'c'}
print('字典推导式后:', dict_comprehension)

>>返回主目录

posted @ 2021-04-15 12:01  PortosHan  阅读(99)  评论(0编辑  收藏  举报