源码
# 列表推导式 # 练习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)