two sum python中enumerate()的用法

题目描述:

这道题目的要求是给定一个数组和一个目标值,判断数组中是否有两个数的和等于目标值,简单的思想是循环套循环,这样的时间复杂度是o(n2),有没有一次遍历就可以得到结果的方法,我想到了python的字典,用数组中元素的值作为健,用元素的索引作为值进行存储,依次遍历数组中的每个数,查看距离目标值的差值在字典中是否有记录,如果有记录,则返回两个元素的下标,如果没有记录,该元素进入字典中,继续遍历。代码如下:

class solution():
    def TwoSum(self,nums,target):
        num_dict = dict()
        for index,value in enumerate(nums):
            sub = target - value
            if sub in num_dict.keys():
                return [num_dict[sub],index]
            else:
                num_dict[value]=index
        return

nums=[20,8,2,15,7]
target=9
print solution().TwoSum(nums,target)#[2, 4]

  

先出一个题目:1.有一 list= [1, 2, 3, 4, 5, 6]  
请打印输出:
0, 1 
1, 2 
2, 3 
3, 4 
4, 5 
5, 6 
打印输出, 
2.将 list 倒序成 [6, 5, 4, 3, 2, 1] 
3.将a 中的偶数挑出 *2 ,结果为 [4, 8, 12] 

这个例子用到了python中enumerate的用法。顺便说一下enumerate在for循环中得到计数的用法,enumerate参数为可遍历的变量,如 字符串,列表等; 返回值为enumerate类。

示例代码如下所示:

问题1.2.3.一同解决,代码如下:

list=[1,2,3,4,5,6]

for i ,j in enumerate(list)

  print(i,j)

list2=list[::-1]

list3=[i*2 for i in list if  not i%2 ]//i%2==0证明i为偶数,not 0说明为真,也就是说i为偶数的时候i*2

print(list2,list3)

>>>0,1

>>>1,2

>>>2,3

>>>3,4

>>>4,5

>>>5,6

>>>[6,5,4,3,2,1]

>>>[4,8,12]

 

在同时需要index和value值的时候可以使用 enumerate。下列分别将字符串,数组,列表与字典遍历序列中的元素以及它们的下标:

一,字符串:

for i,j in enumerate('abcde'):  

   print i,j  

>>>0,a

>>>1,b

>>>2,c

>>>3,d

>>>4,e

二,数组:

for i,j in enumerate(('a','b','c')):  

  print i,j  

输出结果为:

>>>0 a 

>>>1,b

>>>2,c

三,列表:

案例在开头已经说过。

四,字典:

for i,j in enumerate({'a':1,'b':2}):  

  print i,j  

输出结果为:

>>>0 a 

>>>1,b

先出一个题目:1.有一 list= [1, 2, 3, 4, 5, 6]  
请打印输出:
0, 1 
1, 2 
2, 3 
3, 4 
4, 5 
5, 6 
打印输出, 
2.将 list 倒序成 [6, 5, 4, 3, 2, 1] 
3.将a 中的偶数挑出 *2 ,结果为 [4, 8, 12] 

这个例子用到了python中enumerate的用法。顺便说一下enumerate在for循环中得到计数的用法,enumerate参数为可遍历的变量,如 字符串,列表等; 返回值为enumerate类。

示例代码如下所示:

问题1.2.3.一同解决,代码如下:

list=[1,2,3,4,5,6]

for i ,j in enumerate(list)

  print(i,j)

list2=list[::-1]

list3=[i*2 for i in list if  not i%2 ]//i%2==0证明i为偶数,not 0说明为真,也就是说i为偶数的时候i*2

print(list2,list3)

>>>0,1

>>>1,2

>>>2,3

>>>3,4

>>>4,5

>>>5,6

>>>[6,5,4,3,2,1]

>>>[4,8,12]

 

在同时需要index和value值的时候可以使用 enumerate。下列分别将字符串,数组,列表与字典遍历序列中的元素以及它们的下标:

一,字符串:

for i,j in enumerate('abcde'):  

   print i,j  

>>>0,a

>>>1,b

>>>2,c

>>>3,d

>>>4,e

二,数组:

for i,j in enumerate(('a','b','c')):  

  print i,j  

输出结果为:

>>>0 a 

>>>1,b

>>>2,c

三,列表:

案例在开头已经说过。

四,字典:

for i,j in enumerate({'a':1,'b':2}):  

  print i,j  

输出结果为:

>>>0 a 

>>>1,b

猜你喜欢

转载自www.cnblogs.com/tianqizhi/p/9285322.html