编码:1
class Solution:
def firstElementKTime(self, a, n, k):
# code here
countDict = {}
for i in a:
if (a[i] in countDict):
countDict[a[i]] = countDict[a[i]] + 1
else:
countDict[a[i]] = 1
for i in a:
if countDict[a[i]] == k:
return a[i]
return -1
代码1错误:追溯(最近调用最后调用):文件"/home/www.example.com ",第40行,在main()文件"/home/91ded90adaf6c5d579e2dbec3cedff79.py",第34行,在主打印文件中(对象第一元素K时间(a,n,k))文件"/home/91ded90adaf6c5d579e2dbec3cedff79.py ",第9行,在第一元素K时间中,如果(计数字典中的a [i]):91ded90adaf6c5d579e2dbec3cedff79.py列表索引超出范围 IndexError: list index out of range
编码:2
countDict = {}
for i in range(0, len(a)):
if a[i] in countDict:
countDict[a[i]] = countDict[a[i]] + 1
else:
countDict[a[i]] = 1
i = i + 1
for i in a:
if countDict[a[i]] == k:
return a[i]
return -1
无错误:
我希望上述两个代码具有相同的行为。
2条答案
按热度按时间kgsdhlau1#
第一个是在a的元素上运行的,而不是在索引上,所以在第一次迭代中,a[i]就像a[a[0]]。
对于a中的i
会给予你一个[0],一个[1],...
ipakzgxi2#
如果您期望两个代码的行为相同,则:
在代码1中,必须删除索引part1:
由于
for i in a:
将直接访问没有索引的元素,而在代码2中,您使用索引进行访问。