2024-04-26 10:33:01 发布
网友
在不使用任何内置函数的情况下,尝试查找一个数字在列表中出现的次数。下面的代码不起作用
a = [1,1,2,3,4,4,5] for i in a: c = 0 if a[i] == a[i]+1: c =+1 print(c)
我很惊讶地看到3个答案没有使用字典来解决这个问题。你知道吗
l = [1, 1, 2, 3, 4, 4, 5] counts = {} for x in l: if x in counts: counts[x] += 1 else: counts[x] = 1
在运行上述代码之后,counts存储列表l中每个项的出现次数,这些项本身(在本例中是数字)作为键。你知道吗
>>> l = [1, 1, 2, 3, 4, 4, 5] >>> counts = {} >>> for x in l: ... if x in counts: ... counts[x] += 1 ... else: ... counts[x] = 1 ... >>> counts {1: 2, 2: 1, 3: 1, 4: 2, 5: 1}
我看到的一个丑陋但几乎有趣的方法是循环遍历列表,找到最大值,创建一个这样大小的列表,然后在找到值时重新遍历并增加新列表中的索引。你知道吗
a = [1,1,2,3,4,4,5] max = -1 for i in a: if i > max: max = i long_list = [0] * (max + 1) #create the list of the max size for i in a: long_list[i] = long_list[i] + 1 print(long_list)
这里的输出是:[0,2,1,1,2,1]
同样,这不是空间效率在所有,但我喜欢的实施,因为我认为它是有趣的。你知道吗
这个实现的问题是如果您有一个列表,比如[1,2,3545543,34]。这样你的输出就会有点杂乱,浪费了很多空间。你知道吗
Num是您要找的号码。我不确定这是否是你想要的。你知道吗
a = [1,1,1,1,2,3,4,4,5] c = 0 num = 1; for i in a: if i == num: c += 1 print(c)
还是这个
a = [1,1,1,1,2,3,4,4,5] b = [] t = 0 x = 0 while t < len(a): c = 0 temp = a for i in temp: if i == x: c += 1 b.append(c) t += c x += 1 print(b)
输出[0,4,1,1,2,1]
我很惊讶地看到3个答案没有使用字典来解决这个问题。你知道吗
在运行上述代码之后,counts存储列表l中每个项的出现次数,这些项本身(在本例中是数字)作为键。你知道吗
我看到的一个丑陋但几乎有趣的方法是循环遍历列表,找到最大值,创建一个这样大小的列表,然后在找到值时重新遍历并增加新列表中的索引。你知道吗
这里的输出是:[0,2,1,1,2,1]
同样,这不是空间效率在所有,但我喜欢的实施,因为我认为它是有趣的。你知道吗
这个实现的问题是如果您有一个列表,比如[1,2,3545543,34]。这样你的输出就会有点杂乱,浪费了很多空间。你知道吗
Num是您要找的号码。我不确定这是否是你想要的。你知道吗
还是这个
输出[0,4,1,1,2,1]
相关问题 更多 >
编程相关推荐