1 # 列表推导式___________________________________
2
3 # 30以内所有能被3整除的数的平方
4 num = [i * i for i in range(1, 31) if i%3 == 0]
5 print(num)
6
7 # 找到嵌套列表中含有两个'e'的所有名字
8 names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
9 ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
10 print([name for lst in names for name in lst if name.count('e') >= 2]) # 注意遍历顺序,这是实现的关键
11
12
13 # 字典推导式___________________________________
14
15 # 将字典的key和value调换
16 mcase = {'a': 10, 'b': 34}
17 mcase_frequency = {mcase[k]: k for k in mcase}
18 print(mcase_frequency)
19
20 # 合并大小写对应的value值,将k统一成小写
21 mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
22 mcase_frequency = {k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys()}
23 print(mcase_frequency)
24
25
26 # 集合推导式___________________________________
27 # 计算列表中每个值的平方,自带去重功能
28 squared = {x**2 for x in [1, -1, 2]}
29 print(squared)
30 # Output: set([1, 4])