Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何找到数组的最大值数?_Python_Arrays - Fatal编程技术网

Python 如何找到数组的最大值数?

Python 如何找到数组的最大值数?,python,arrays,Python,Arrays,假设我有这个数组: Letters = ["A","B","C","D"] #A #B #C #D numbers = [ [1,4,3],[2,4,5,5],[3],[2,3] ] 我想找出这些数组中哪一个最长,并希望得到如下输出: B has the most values 我尝试过这样的事情 Letters = ["A","B","C","D"] #A #B #C #D numb

假设我有这个数组:

Letters = ["A","B","C","D"]
           #A           #B     #C   #D
numbers = [ [1,4,3],[2,4,5,5],[3],[2,3] ]
我想找出这些数组中哪一个最长,并希望得到如下输出:

B has the most values
我尝试过这样的事情

Letters = ["A","B","C","D"]
               #A       #B     #C   #D
numbers = [ [1,4,3],[2,4,5,5],[3],[2,3] ]
length = 0
maximum = 0
for i in numbers:
    for x in i:
        lenght = len(numbers)
        if length > maximum:
            maximum = length
print(maximum)
您可以压缩这两个列表,并使用带有自定义键的max内置函数查找列表最长的元组:

from operator import itemgetter
s = max(zip(Letters, numbers), key= lambda x: len(itemgetter(1)(x)))[0]
输出

由于您只需要列表的长度及其位置,请将数字转换为长度列表,其中每个长度的位置对应于每个子列表的位置:

numbers_lengths = list(map(len, numbers)) # using `list` is not necessary
# numbers_lengths == [3, 4, 1, 2]
您希望将字母的每个元素与长度关联,这意味着您需要不同的数据结构:

Map = dict(zip(letters, numbers_lengths))
# Map == {'A': 3, 'B': 4, 'C': 1, 'D': 2}
只需找到值最大的键:

result = max([(length, letter) for letter, length in Map.items()])
# result == (4, 'B')
这是因为你可以比较元组:2,'a'>0,'b'是真的

3.1另一种方法:

result = max(Map.items(), key=lambda pair: pair[1])
# result == ('B', 4)
因此,答案是结果[1]=“B”


实际上,C的值最少。让我重新编辑问题。我复制和粘贴时,格式出错。创建时,您尝试了什么,因为这与您之前提出的另一个问题类似,所以请在一秒钟内提供您的尝试确定。。。。。
result = max(Map.items(), key=lambda pair: pair[1])
# result == ('B', 4)