编写程序,输入一个列表 a ,计算得到一个元组 t 。元组 t 的第一个元素为列表 a 的最大值,其余元素为该最大值在列表 a 中的下标(考虑最大值不唯一的情况)。
代码跟解释
_input = input("请输入列表,用空格隔开 例如:1 3 5 7\n")
a = _input.replace("\n", "").split(' ') # 将输入转换为 list [‘1‘, ‘3’,‘ 5‘,’ 7‘’]
a = [int(x) for x in a] # 将列表内的字符串转换为int [1, 3, 5, 7]
_max = max(a) # 获取list中的最大值
_index = a.index(_max) # 查找 list中这个值所在的下标
t = (_max, _index) # 赋值给t
print("输入的列表a为:", a)
print("元素t为:", t)
输出为:
请输入列表,用空格隔开 例如:1 3 5 7
1 3 5 7
输入的列表a为: ['1', '3', '5', '7']
元素t为: ('7', 3)
如有问题及时沟通
#编写程序,输入一个列表a,计算得到一个元组t。元组t的第一个元素为列表a的最大值,其余元素为该最大值在列表a中的下标(考虑最大值不唯一的情况
````
lst = eval(input())
index = []
maxx = max(lst)
index.append(lst.index(maxx))
if lst.count(maxx)>1:
for i in range(len(lst)):
#print(i)
if lst[i]==maxx and i not in index:
index.append(i)
#print(index)
res = (maxx, *index)
print(res)
```
看看代码吧,看着看着就会了。在网上都找一找 这个有原题的。思路讲解也是有的,先自己解决一下,实在解决不了再问,这样有利于提升自己的能力
a = eval(input())
t = (max(a), *(i for i,j in enumerate(a) if j == max(a)))
input()从键盘输入的是字符串格式,eval()函数可以自动识别,如果输入的格式是列表(左右带中括号),则eval()会自动转换为列表。
max()函数自动得到列表中的最大值,也是要生成的元组t的第一个元素
enumerate()函数可以把列表中的元素按照序号(列表中的位置)依次列出,所以如果元素大小等于最大值(j == max(a))则把它的位置序号加到一个新的可迭代对象里。
*星号用于解包,是把 for in生成的元素解包出来,加入到元组t中。
def function(arr: list) -> tuple:
"""
:param arr:
:return:
"""
buffer_arr = []
max_num = arr[0]
for k, v in enumerate(arr):
if v > max_num:
buffer_arr = [k]
max_num = v
elif v == max_num:
buffer_arr.append(k)
return max_num, buffer_arr
if __name__ == '__main__':
a = [1, 15, 5, 9, 7, 8, 11, 15, 1, 2, 15]
res = function(a)
print("原数组:", a)
print("结果:", res)
def function(arr: list) -> tuple:
"""
:param arr:
:return:
"""
buffer_arr = []
max_num = arr[0]
for k, v in enumerate(arr):
if v > max_num:
buffer_arr = [k]
max_num = v
elif v == max_num:
buffer_arr.append(k)
result = tuple([max_num] + buffer_arr)
return result
if __name__ == '__main__':
a = [1, 15, 5, 9, 7, 8, 11, 15, 1, 2, 15]
res = function(a)
print("原数组:", a)
print("结果:", res)
# 定义函数
def IndexOfLargestElement(list):
return [i for i, a in enumerate(list) if a == max(list)]
# 主函数
temp = []
print("Please input numbers to end with -1:")
# 循环获取输出
while True:
a = eval(input())
if a == -1:
break
temp.append(a)
# 进行输出
print(IndexOfLargestElement(temp))