1.列表复制问题
1 | list1=[None,None] |
2.求列表第三大的那个值
1 | # 求列表第三大的那个值 |
3.台阶问题/斐波那契
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
1 | fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2) |
第二种记忆方法
1 | def memo(func): |
第三种方法
1 | def fib(n): |
变态台阶问题
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
1 | fib = lambda n: n if n < 2 else 2 * fib(n - 1) |
4.去除列表中的重复元素
用集合
1 | list(set(l)) |
用字典
1 | l1 = ['b','c','d','b','c','a','a'] |
用字典并保持顺序
1 | l1 = ['b','c','d','b','c','a','a'] |
列表推导式
1 | l1 = ['b','c','d','b','c','a','a'] |
sorted排序并且用列表推导式.
l = [‘b’,’c’,’d’,’b’,’c’,’a’,’a’]
[single.append(i) for i in sorted(l) if i not in single]
print single
5.创建字典的方法
1 直接创建
1 | dict = {'name':'earth', 'port':'80'} |
2 工厂方法
1 | items=[('name','earth'),('port','80')] |
3 fromkeys()方法
1 | dict1={}.fromkeys(('x','y'),-1) |
6.合并两个有序列表
pop弹出
1 | a = [1,2,3,7] |