1 交换两个变量

  1. # a = 4, b = 5
  2. >> a, b = b, a
  3. >> print(a, b)
  4. 5 4

2 多个变量赋值

  1. >> a, b, c = 4, 5.5, 'Hello'
  2. >> print(a, b, c)
  3. 4 5.5 Hello

3 列表中的偶数求和

  • 列表索引 + sum 函数 ```python

    a = [1,2,3,4,5,6] s = sum([num for num in a if num % 2 == 0])

print(s) 12 ```

4 从列表中删除多个元素

del 是 Python 中用于从列表中删除值的关键字。

  1. # Delete all even numbers.
  2. >> a = [1,2,3,4,5]
  3. >> del a[1::2]
  4. >> print(a)
  5. [1, 3, 5]

5 读取文件中的每一行

  1. >> with open('data.txt', 'r') as f:
  2. ....lst = [line.strip() for line in f]
  3. >> print(lst)

6 创建列表

  1. >> lst = [i for i in range(0, 10)]
  2. >> print(lst)
  3. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  4. # OR
  5. >> lst = list(range(0, 10))
  6. >> print(lst)
  7. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  1. >> lst = [("Hello" + i) for i in ['Karl', 'Abhay', 'Zen']]
  2. >> print(lst)
  3. ['Hello Karl', 'Hello Abhay', 'Hello Zen']

7 映射列表或转换列表元素类型

使用 map 函数。

  1. >> list(map(int, ['1', '2', '3']))
  2. [1, 2, 3]
  3. >> list(map(float, [1,2,3]))
  4. [1.0, 2.0, 3.0]
  5. >> [float(i) for i in [1,2,3])]
  6. [1.0, 2.0, 3.0]

8 创建集合

  1. # Square of all even numbers in an range.
  2. >> {x**2 for x in range(10) if x % 2 == 0}
  3. {0, 4, 16, 36, 64}

9 Fizz Buzz

在这个测试中,我们需要编写一个程序来打印从1 到 20 的数字。但如果是3的倍数,打印 Fizz,如果是 5 的倍数,打印 Buzz,如果同时是3和5的倍数,打印 FizzBuzz,否则打印数字。

  1. >> ['FizzBuzz' if i % 3 == 0 and i % 5 == 0
  2. .... else 'Fizz' if i % 3 == 0
  3. .... else 'Buzz' if i % 5 == 0
  4. .... else i for i in range(1, 20)]
  5. [1,
  6. 2,
  7. 'Fizz',
  8. 4,
  9. 'Buzz',
  10. 'Fizz',
  11. 7,
  12. 8,
  13. 'Fizz',
  14. 'Buzz',
  15. 11,
  16. 'Fizz',
  17. 13,
  18. 14,
  19. 'FizzBuzz',
  20. 16,
  21. 17,
  22. 'Fizz',
  23. 19]

10 回文

  1. >> text = 'level'
  2. >> is_palindrome = text == text[::-1]
  3. >> is_palindrome
  4. True

11 输入用空格分隔的整数们到列表

  1. >> lst = list(map(int, input().split()))
  2. >> 1 2 3 4 5 6 7 8
  3. >> print(lst)
  4. [1, 2, 3, 4, 5, 6, 7, 8]

12 打印图案 —- str.join()

  1. >> n = 5
  2. >> print('\n'.join('😀' * i for i in range(1, n+1)))
  3. 😀
  4. 😀😀
  5. 😀😀😀
  6. 😀😀😀😀
  7. 😀😀😀😀😀

13 计算阶乘

math.factorial()

  1. >> import math
  2. >> n = 6
  3. >> math.factorial(n)
  4. 720

14 斐波那契数列

  1. >> fibo = [0, 1]
  2. >> for i in range(5):
  3. ... fibo.append(fibo[-1] + fibo[-2])
  4. >> fibo
  5. [0, 1, 2, 4, 8, 16, 32]

15 质数

质数是一个只能被自身和 1 整除的数。例如:2、3、5、7 等。为了在一个范围内生成质数,我们可以使用带有 filterlambdalist 函数来生成质数。

  1. >> list(filter(lambda x : all(x % y != 0 for y in range(2, int(math.sqrt(x)))), range(2, 3)))
  2. [2, 3, 5, 7, 11]

16 求两者中较大的 —- Lambda

  1. >> find_max = lambda x, y : x if x > y else y
  2. >> find_max(12, 55)
  3. 55

※ 17 矩阵转置 —- zip() + *

  1. >> a = [[1,2,3],
  2. ... [4,5,6],
  3. ... [7,8,9]]
  4. >> transpose = [list(i) for i in zip(*a)]
  5. >> transpose
  6. [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

18 计算字符串出现的次数 —- re

  1. len(re.findall('python','python is a programming language. python is python.'))
  2. 3

19 随机抽取 —- random.choice()

  1. >> import random
  2. >> random.choice(['Head', 'Tail'])
  3. Head # or Tail

20 生成组合

  1. >> groups = [(a, b) for a in ['a', 'b'] for b in [1,2,3]]
  2. >> groups
  3. [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]

这个是区别于 zip 的,因为循环 for b in [1,2,3] 相当于第二层循环 而 zip(['a', 'b'], [1,2,3]) 的结果是 ('a', 1) 和 ('b', 2)