1、打开JUPYTER NOTEBOOK,新建一个PY文档。
2、l = [1, 5, 33, 6, 18]goal = 7这是列表和目标数,要求找到两个数相加得到目标数。
3、l[0] + l[-2]这是最简单的方法,但是数据多的时候,或者目标数比较大的时候就比较难计算了。
4、for i in l: if goal - i == ? print(i, ?)这里我们可以考虑用FOR循环找出两个数。
5、for i in range(len(l)): if goal - l[i] == ? print(i, ?)遍历的时候要指定范围,所以就要用len。
6、for i in range(len(l)): for j in range(len(l)): if goal - l[i] == l[j] print(i, j)但是只有一个i是不够的,还要用j来记录。
7、for i in range(len(l)): for j in range(1, len(l)): if goal - l[i] == l[j]: print(i, j)j只需要在1开始,没必要都从0开始。
8、l = [1, 5, 33巳呀屋饔, 5, 18]goal = 10for i in range(len(l)): for j in range(1, len(l)): if goal 幻腾寂埒- l[i] == l[j]: print(i, j)如果列表里面有重复的数,这个方法就有点问题了。
9、l = [1, 5, 33, 5, 18]goal = 10d = {}for i in range(len(l)): if (goal - l[i]) in d: print(i, d[(goal - l[i])])因为我们打算用字典来储存数据。
10、l = [1, 5, 33巳呀屋饔, 5, 18]goal = 10d = {}for i in range(len(l)): if (goal - l[i]) in d: print(足毂忍珩i, d[(goal - l[i])]) else: d[l[i]] = i但是这里打印的数顺序相反了。
11、l = [1, 5, 33巳呀屋饔, 5, 18]goal = 10d = {}for i in range(len(l)): if (goal - l[i]) in d: print(颊俄岿髭d[(goal - l[i])], i) else: d[l[i]] = i所以这才是正确的方法。