从1开始计算索引,而不是列表的0

问题描述 投票:0回答:1

我创建了一个程序来获取列表的最大值及其出现的位置(列表从1而不是0的索引开始),但是我找不到任何有用的解决方案。输入始终是一串数字除以零。

这是我的代码:

inp = list(map(int,input().split()))
m = max(inp)
count = inp.count(m)
print(m)
def maxelements(seq): # @SilentGhost
    return [i for i, j in enumerate(seq) if j == m]
print(maxelements(inp))

我希望先输出最大值,然后输出其出现的所有位置。 (也可以像下面的示例中那样不使用方括号吗?)

输入:4 56 43 45 2 56 8

输出:56

2 6

python-3.x max counting
1个回答
0
投票

如果您要移动索引值,可以这样做

return [i + 1 for i, j in enumerate(seq) if j == m]

通常是i或j的任何变换!

def f(i, j):
    # do whatever you want, and return something
    return i + 1

return [f(i, j) for i, j in enumerate(seq) if j == m]

[不带括号,作为字符串:

return " ".join(i +1 for i, j in enumerate(seq) if j==m) 
© www.soinside.com 2019 - 2024. All rights reserved.