1、enumerate()函數
enumerate本意是列舉,枚舉的意思
用于将一個可周遊的資料對象(如清單、元組或字元串)組合為一個索引序列,同時列出資料和資料下标,
一般用在 for 循環當中,可同時得到資料對象的值及對應的索引值。
例如
lst = [1, 2, 3, 4, 5, 6]
for index, value in enumerate(lst, 1): # 指定開始的索引值,預設從0開始
print('{}:{}'.format(index,value))
傳回清單的元素和索引
再如,leecode有一道題
給定一個整數數組 nums 和一個目标值 target,請你在該數組中找出和為目标值的那 兩個 整數,并傳回他們的數組下标。
你可以假設每種輸入隻會對應一個答案。但是,你不能重複利用這個數組中同樣的元素。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
是以傳回 [0, 1]
就可以利用enumerate内置函數
class Solution(object):
def twoSum(self,nums, target):
"""
:param nums: list[int]
:param target:int
:return:list[int]
"""
for i, items in enumerate(nums):
res1 = target - items
try:
pos1 = nums.index(res1)
if pos1 != i:
print(sorted([pos1,i]))
return sorted([pos1,i])
except ValueError:
pass
s = Solution()
lst = [1,2,3,16,6]
s.twoSum(lst,9)