1 交换两个变量
# a = 4, b = 5>> a, b = b, a>> print(a, b)5 4
2 多个变量赋值
>> a, b, c = 4, 5.5, 'Hello'>> print(a, b, c)4 5.5 Hello
3 列表中的偶数求和
- 列表索引 +
sum函数 ```pythona = [1,2,3,4,5,6] s = sum([num for num in a if num % 2 == 0])
print(s) 12 ```
4 从列表中删除多个元素
del 是 Python 中用于从列表中删除值的关键字。
# Delete all even numbers.>> a = [1,2,3,4,5]>> del a[1::2]>> print(a)[1, 3, 5]
5 读取文件中的每一行
>> with open('data.txt', 'r') as f:....lst = [line.strip() for line in f]>> print(lst)
6 创建列表
>> lst = [i for i in range(0, 10)]>> print(lst)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# OR>> lst = list(range(0, 10))>> print(lst)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>> lst = [("Hello" + i) for i in ['Karl', 'Abhay', 'Zen']]>> print(lst)['Hello Karl', 'Hello Abhay', 'Hello Zen']
7 映射列表或转换列表元素类型
使用 map 函数。
>> list(map(int, ['1', '2', '3']))[1, 2, 3]>> list(map(float, [1,2,3]))[1.0, 2.0, 3.0]>> [float(i) for i in [1,2,3])][1.0, 2.0, 3.0]
8 创建集合
# Square of all even numbers in an range.>> {x**2 for x in range(10) if x % 2 == 0}{0, 4, 16, 36, 64}
9 Fizz Buzz
在这个测试中,我们需要编写一个程序来打印从1 到 20 的数字。但如果是3的倍数,打印 Fizz,如果是 5 的倍数,打印 Buzz,如果同时是3和5的倍数,打印 FizzBuzz,否则打印数字。
>> ['FizzBuzz' if i % 3 == 0 and i % 5 == 0.... else 'Fizz' if i % 3 == 0.... else 'Buzz' if i % 5 == 0.... else i for i in range(1, 20)][1,2,'Fizz',4,'Buzz','Fizz',7,8,'Fizz','Buzz',11,'Fizz',13,14,'FizzBuzz',16,17,'Fizz',19]
10 回文
>> text = 'level'>> is_palindrome = text == text[::-1]>> is_palindromeTrue
11 输入用空格分隔的整数们到列表
>> lst = list(map(int, input().split()))>> 1 2 3 4 5 6 7 8>> print(lst)[1, 2, 3, 4, 5, 6, 7, 8]
12 打印图案 —- str.join()
>> n = 5>> print('\n'.join('😀' * i for i in range(1, n+1)))😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀
13 计算阶乘
math.factorial()
>> import math>> n = 6>> math.factorial(n)720
14 斐波那契数列
>> fibo = [0, 1]>> for i in range(5):... fibo.append(fibo[-1] + fibo[-2])>> fibo[0, 1, 2, 4, 8, 16, 32]
15 质数
质数是一个只能被自身和 1 整除的数。例如:2、3、5、7 等。为了在一个范围内生成质数,我们可以使用带有 filter 和 lambda 的 list 函数来生成质数。
>> list(filter(lambda x : all(x % y != 0 for y in range(2, int(math.sqrt(x)))), range(2, 3)))[2, 3, 5, 7, 11]
16 求两者中较大的 —- Lambda
>> find_max = lambda x, y : x if x > y else y>> find_max(12, 55)55
※ 17 矩阵转置 —- zip() + *
>> a = [[1,2,3],... [4,5,6],... [7,8,9]]>> transpose = [list(i) for i in zip(*a)]>> transpose[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
18 计算字符串出现的次数 —- re
len(re.findall('python','python is a programming language. python is python.'))3
19 随机抽取 —- random.choice()
>> import random>> random.choice(['Head', 'Tail'])Head # or Tail
20 生成组合
>> groups = [(a, b) for a in ['a', 'b'] for b in [1,2,3]]>> groups[('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)
