毋庸置疑,Python是如今发展最迅速的编程语言。在我们的调查中,今年它在在编程语言中的排名再次上升,取代Java成为了第二受欢迎的编程语言(仅次于Rust)。
不论是在不同学科还是各个行业,Python技能似乎都成为了“硬通货”。很多人开始了Python语言的学习,朋友圈里的Python培训广告也只增不减。
如果你已经成为了一名Python初学者,那么恭喜,你正在学习发展最迅速的主要编程语言之一。笔者学习Python已有五年,本文将分享一份简单实用的Python学习技巧和窍门清单,希望你能更有效地学习Python,充分享受学习过程。
提示:目前笔者使用的是Python 3.8。如果在给出的示例的实践过程中遇到任何问题,请先检查自己的Python版本。
- 条件返回语句
与其:
def compare(a,b):
… if a> b:
… return a
… else:
… return b
…
不如将条件直接输入至返回语句中。
def compare(a, b):
… return a if a> b else b
…
- 在列表/多元组中的一行语句中赋予多个变量
与其:
arr_list = [1,4,7]
a = arr_list[0]
b = arr_list[1]
c = arr_list[2]
不如在一行语句中进行赋值:
a, b, c = arr_list
a
1b
4c
7
- 数值比较
a = 1
b = 3
a == 1
Truea == 2
Falsea == b
Falsea > b
Falsea <= b
Trueif a <= b :
… print(‘a is less than or equal tob’)
…
a is less than or equal to b
此方法可以比较两个对象的值。返回对/错。比较可直接被用作if-else语句中的条件。
- 列表推导式
与其:
arr_list = [1,4,7]
result = []
for i in arr_list:
… result.append(i*2)
…result
[2, 8, 14]
不如:
result = [x*2 for x in arr_list]
result
[2, 8, 14]
- 使用lambda表达式按第二个元素对嵌套数组进行排序
arr_list= [[1,4], [3,3], [5,7]]
arr_list.sort(key= lambda x: x[1])
arr_list
[[3, 3], [1, 4], [5, 7]]
- Filter函数、Map函数
与其:
arr_list = [-1, 1, 3, 5]
result = []
for i in arr_list:
… if i > 0:
… result.append(i**2)
…result
[1, 9, 25]
不如:
result = list(map(lambda x: x**2, filter(lambda x: x > 0, arr_list)))
result
[1, 9, 25]
此处使用列表推导式会更好。
result = [i**2 for i in arr_list if i > 0]
result
[1, 9, 25]
- 检查列表中元素是否唯一
图源:unsplash
使用set函数从列表中删除重复的元素,然后测试列表和set的长度是否相等:
arr_list = [1,4,4,6,9]
len(arr_list) == len(set(arr_list))
False
- 使用zip函数比较两个列表中的元素
与其:
a = [1,5,8]
b = [3,4,7]
result = []
for i in range(len(a)):
… result.append(a[i] if a[i]<b[i] else b[i])
…result
[1, 4, 7]
不如:
result = [min(i) for i in zip(a,b)]
result
[1, 4, 7]
- 字符串格式化
Python3.6及更旧版本:
a, b, c = 1,5,9
print(‘a is {}; b is {}; c is {}’.format(a,b,c))
a is 1; b is 5; c is 9
Python3.6及更新版本:
print(f’a is {a}; b is {b}; c is {c}’)
a is 1; b is 5; c is 9
- Enumerate函数
与其:
arr_list = [1, 5, 9]
for i in range(len(arr_list)):
… print(f’Index: {i}; Value:{arr_list[i]}’)
…
Index: 0; Value: 1
Index: 1; Value: 5
Index: 2; Value: 9
不如:
for i, j in enumerate(arr_list):
… print(f’Index: {i}; Value: {j}’)
…
Index: 0; Value: 1
Index: 1; Value: 5
Index: 2; Value: 9
- 形式组合和排列
str_list = [‘A’, ‘C’, ‘F’]
list(itertools.combinations(str_list,2))
[(‘A’, ‘C’), (‘A’, ‘F’), (‘C’, ‘F’)]list(itertools.permutations(str_list,2))
[(‘A’, ‘C’), (‘A’, ‘F’), (‘C’, ‘A’), (‘C’, ‘F’), (‘F’, ‘A’), (‘F’, ‘C’)]
- 获取数组的特定部分
arr_list = [1,4,6,8,10,11]
a, *b, c = arr_list
a
1b
[4, 6, 8, 10]c
11
尽管这些技巧十分简单,却能避免很多不必要的步骤,简化代码。易上手易理解是Python最大的优点之一,希望你能享受学习、快乐编码!
http://www.mmfang.cc/sitemap.xml