白白白白丶白 发表于 2020-6-23 19:41:57

请问,下面代码在字典那段怎么理解

def two_sum(self, nums, val):
    if nums is None or val is None:
      raise TypeError('heheh ')
    if not nums:
      raiseValueError('hahah ')
    cache = {}
    for index, num in enumerate(nums):
      cache_val = val - num
      if num in cache:
            return , index]
      else:
            cache = index
    return None
cache = {} 怎么和for语句关联的呀? for语句是创建了一个字典吗,怎么把项弄到cache里面的?

Twilight6 发表于 2020-6-23 19:55:39

cache = {} 怎么和for语句关联的呀?

和 for 循环里面的 else 下面的代码块有关联

for语句是创建了一个字典吗,怎么把项弄到cache里面的?

字典是你之前 cache = {} 就创建了,是在 for 循环中添加字典中的元素

当 num 不在字典中时,就将执行 else 语句 往 cache = {} 字典里添加新的 键-值对 元素,也就是执行:cache = index

白白白白丶白 发表于 2020-6-23 20:14:26

Twilight6 发表于 2020-6-23 19:55
和 for 循环里面的 else 下面的代码块有关联




奥, 原来如此,

cache和cache意义不都是一样的吗,那为什么还要多设置一个变量

脑袋稀昏,做小题目 倒是能做了,一把知识点混一起脑袋就转不过来。

Twilight6 发表于 2020-6-23 20:18:13

白白白白丶白 发表于 2020-6-23 20:14
奥, 原来如此,

cache和cache意义不都是一样的吗,那为什么还要多设置一个变量




因为你这个代码不是完整的 ,其他的无法判断哈, 你这定义的是一个类里面的方法

num 是num而 cache_val 是 等于你 val - num 意义怎么会一样呢~

白白白白丶白 发表于 2020-6-23 20:24:47

Twilight6 发表于 2020-6-23 20:18
因为你这个代码不是完整的 ,其他的无法判断哈, 你这定义的是一个类里面的方法

num 是num而 c ...

好的,知道了,谢谢

Twilight6 发表于 2020-6-23 20:29:54

白白白白丶白 发表于 2020-6-23 20:24
好的,知道了,谢谢

客气~加油吧
页: [1]
查看完整版本: 请问,下面代码在字典那段怎么理解