[英]finding minimum index of a list
嗨,大家好,我需要帮助来创建一个函数,该函数将找到包含字符串列表和整数列表的列表的最小索引。 现在,我可以使用该函数查找整数或字符串列表的最小索引,但不能同时查找两者。
def find_index_of_min(L):
"""
Parameter: a list L
Returns: the index of the minimum element of the list
(returns None if the list is empty)
"""
if L == []:
return None
elif L == str:
min = 'Z'
for i in range(len(L)):
if L[i] < min:
min = L[i]
min_index = i
return min_index
elif L == int:
min = float('inf')
for i in range(len(L)):
if L[i] < min:
min = L[i]
min_index = i
return min_index
import sys
import math
def main():
""" Read and print a file's contents. """
# filename = str(input('Name of input file: '))
# string = readfile(filename)
# print()
# print('The original list of cities is:')
# for i in range(len(string)):
# print(i, ':', string[i], sep="")
print(find_index_of_min([]))
print(find_index_of_min([3, 2, 1, 0]))
print(find_index_of_min(['A', 'Z', 'Y', 'B']))
print(find_index_of_min(['B', 'A', 'Z', 'Y']))
main()
您需要将以下内容替换为L == int
和L == str
(将始终被赋为False):
all(isinstance(item, str) for item in L) # L == str
all(isinstance(item, int) for item in L) # L == int
您可以尝试以下方法:
有一个检查内部元素是数字还是字符串的函数。
def isNumber(s): # Helper function to check if it is a Number or a string
try:
float(s)
return True
except ValueError:
return False
def find_index_of_min(L):
"""
Parameter: a list L
Returns: the index of the minimum element of the list
(returns None if the list is empty)
"""
if L == []:
return None
elif isNumber(L[0]):
min = float('inf')
for i in range(len(L)):
if L[i] < min:
min = L[i]
min_index = i
return min_index
else:
min = 'Z'
for i in range(len(L)):
if L[i] < min:
min = L[i]
min_index = i
return min_index
import sys
import math
def main():
""" Read and print a file's contents. """
# filename = str(input('Name of input file: '))
# string = readfile(filename)
# print()
# print('The original list of cities is:')
# for i in range(len(string)):
# print(i, ':', string[i], sep="")
print(find_index_of_min([]))
print(find_index_of_min([3, 2, 1, 0]))
print(find_index_of_min(['A', 'Z', 'Y', 'B']))
print(find_index_of_min(['B', 'A', 'Z', 'Y']))
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.