python刷题笔记1--Two Sum

给定一个数组和一个特定的数,使得数组中的两个数等于这个特定的数。找出这两个数的下标。

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

class Solution(object):                               #新建类Solution,使用object继承
    def twoSum(self, nums, target):                   #定义方法twosum,self代表类的实例,在定义方法时是必须有的。
      
  """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        dic = dict()                                   #利用python中的字典记录每个元素出现的位置,也就是其他语言的哈希表。
        for index,value in enumerate(nums):            #循环遍历字典中的对象,获得索引和值。
            sub = target - value
            if sub in dic:
                return [dic[sub],index]
            else:
                dic[value] = index


字典说明

 

字典是由多个键及与其对应的值构成的键-值对组成。字典可以通过下面的方式创建:

phonebook={‘Alice’:'2341','Benth':'9201','Cecil':'3258'}

上面名字是键,电话号码是值。每个键与他的值之间用冒号(:)隔开,项之间用逗号(,)隔开,

整个字典用大括号{}括起来,字典中,键是唯一的,值不唯一。

dict函数,可以通过其他映射(比如其他字典)或(键,值)对儿的序列建立字典。

>>>items=[('name','Gumby'),('age',42)]

>>>d=dict(items)

>>>d

{'age':42,'name':'Gumpy'}

>>>d['name']

'Gumby'

dict函数也可以通过关键字参数来创建字典

 
>>>d=dict(name='Gumby',age=42)
>>>d   

{'age':42,'name':'Gumpy'}

 

enumerate()说明

 

  • enumerate()是python的内置函数
  • enumerate在字典上是枚举、列举的意思
  • 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
  • enumerate多用于在for循环中得到计数
  • 例如对于一个seq,得到:

    (0, seq[0]), (1, seq[1]), (2, seq[2])
    • 1
  • enumerate()返回的是一个enumerate对象,例如: 
    这里写图片描述

enumerate()使用

  • 如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:

list1 = ["这", "是", "一个", "测试"]for i in range (len(list1)):    print i ,list1[i]
  • 上述方法有些累赘,利用enumerate()会更加直接和优美:
  • list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
    print index, item
>>>
012 一个
3 测试
  • enumerate还可以接收第二个参数,用于指定索引起始值,如:
list1 = ["这", "是", "一个", "测试"]for index, item in enumerate(list1, 1):
    print index, item
>>>
123 一个
​​​​​​​4 测试
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值