Leetcode Python笔记
程序员文章站
2022-03-10 20:37:44
每天一道leetcode,复习数据结构和算法,用此随笔回顾记录一些python的方法和知识点 ......
每天一道leetcode,回顾一些python的方法和知识点:
-
enumerate
(iterable, start=0) 枚举方法,iterable参数必须是一个序列(sequence),迭代器(iterator)或者一些其他的可供迭代的对象(object)。start参数为下标起始位置,默认为0。enumerate() 将可迭代的对象组合成索引序列,同时列出索引和对应数据。常用于for循环当中。 官方代码举例:>>> seasons = ['spring', 'summer', 'fall', 'winter'] >>> list(enumerate(seasons)) [(0, 'spring'), (1, 'summer'), (2, 'fall'), (3, 'winter')] >>> list(enumerate(seasons, start=1)) [(1, 'spring'), (2, 'summer'), (3, 'fall'), (4, 'winter')]
等同于:
1 def enumerate(sequence, start=0): 2 n = start 3 for elem in sequence: 4 yield n, elem 5 n += 1
用于for循环:
1 for i,j in enumerate(seasons): 2 print(i,j)
输出:
0 spring 1 summer 2 fall 3 winter
(2020/4/9出现于两数之和,在python中用字典模拟hash表,牺牲空间复杂度换取时间复杂度)
-
divmod
(a, b)将两个非复数作为参数,返回由他们的商(quotient)和余数(remainder)组成的元组(tuple)(a // b, a % b)
.,也可用于浮点数的操作,复数不行(python3.6版本)>>>divmod(7, 2) (3, 1)
(2020/4/10两数相加,处理链表,逐位相加,用divmod处理进位,注意空链表的情况)