大家好,给大家分享一下python慕课版董付国课后题答案,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
慕课北京大学陈斌老师python课 学习笔记
个人学习记录,如有错误欢迎指正 PHP与PYTHON:基于语法,功能,应用程序等的详细比较。
数据类型
陈斌老师python课
列表归并排序
def merge_sort(lst):
if len(lst) <= 1:
return lst
middle = int(len(lst) / 2)
left = merge_sort(lst[:middle])
right = merge_sort(lst[middle:])
merged = []
while left and right:
merged.append(left.pop(0) if left[0] <= right[0] else right.pop(0))
# left.pop(0)是提取left的第0个元素并更新left
# 将left与right中第0位上最小的元素提取出来加到merged中
# 若right的更小,则right的第0位被提取,下一次比较的是right的第1位和left的第0位
merged.extend(left if left else right)
# extend与append都是将元素添加到merged中,添加一个元素无差别
# 若添加的为列表或元组,extend是添加列表的元素,而append是将其作为一个整体添加上
# 在此只能用extend
return merged
data_lst = [6, 202, 100, 301, 38, 8, 1]
print(merge_sort(data_lst))
字符串操作
s = ‘abcdefg123456’
要获得 ‘54321’
s[::-1][0:5] # 先反转载取5个字符
s[-1:6:-1]
s[-1:-6:-1] # 6和-6都是g,不包含g
# 步长为-1时,是从右向左取
# 故s[0:5:-1]的结果为'’(空字符串)因为它根本就没切到字符
ls.reverse()与reversed(ls)区别
-
ls.reverse(