我有一个清单,上面有这样的小号和大号:
[234, 454, 123444, 123, 234, 122234, 234, 354, 654, 123231, 234, 342, 1231231]“大数字”至少比较小的数字大10倍。总的来说,榜单上有4个“大数字”:123444、122234、123231和1231231。
我想找出第三和第四“大数”的指数:
美国皇家银行( 123231 1231231 9 10 11 12 )
如你所见,第三个“大数”的索引是9,第四个“大数”的索引是12,因此输出应该是9和12。
发布于 2018-09-27 11:13:36
排序在这里是没有好处的,因为如果一个更大的值long出现在一个较小的长值之前,那么顺序就会被破坏,就像在这个示例(123444 > 123231)中所做的那样。相反,使用enumerate查找大于其他项值10倍的项,并按照它们的外观顺序将它们的索引追加到新列表中,然后获取包含索引的新列表的第3项和第4项。
longs = []
j = min(l)
for idx, item in enumerate(l):
if item/10 > j:
longs.append(idx)
print(*longs[2:])或列表理解
longs = [idx for idx, item in enumerate(l) if item/10 > j]9 12
发布于 2018-09-27 10:53:44
发布于 2018-09-27 10:57:14
您可以通过对列表进行排序,然后使用索引的反向切片查找最大值的索引来实现这一目标:
num = [234, 454, 123444, 123, 234, 122234, 234, 354, 654, 123231, 234, 342, 1231231]
temp = sorted(num)
for i in temp[::-1][:2]:
print("Index of", i, "is:", num.index(i))结果:
Index of 1231231 is: 12
Index of 123444 is: 2https://stackoverflow.com/questions/52534972
复制相似问题