Python 列表中最大的字母

Python 列表中最大的字母,python,python-3.x,count,Python,Python 3.x,Count,我需要帮助创建一个程序来搜索列表并打印出在位置0重复次数最多的字母。目前,我有以下几点: lst=['Bill','Kev','Bard','Mike'] lst2=list() for word in lst: lst3.append(word[0]) print(lst3) 要知道这会创建一个列表['B'、'K'、'B'、'M'] 如何使其打印出位置0中重复次数最多的字母 没有什么太复杂的plz我还是新来的你可以使用一个计数器和一堆匿名函数: from collections impo

我需要帮助创建一个程序来搜索列表并打印出在位置0重复次数最多的字母。目前,我有以下几点:

lst=['Bill','Kev','Bard','Mike']
lst2=list()
for word in lst:
  lst3.append(word[0])
print(lst3)
要知道这会创建一个列表['B'、'K'、'B'、'M'] 如何使其打印出位置0中重复次数最多的字母


没有什么太复杂的plz我还是新来的

你可以使用一个
计数器
和一堆匿名函数:

from collections import Counter

# Inside the Counter I use list comprehenshion to get the first letter from each word
counter = Counter([word[0] for word in lst]) 
counter.most_common(1) # --> [('B', 2)]
from collections import Counter
from functools import reduce

lst = ['Bill','Kev','Bard','Mike']

max_value = max(
  reduce(
    lambda p, x: p.update([x]) or p,
    map(lambda x:x[0], lst),
  Counter()).items(),
  key=lambda x:x[1])[0]
print(max_value)

我不需要一个库来解决这个问题,但我必须说,前面的回答非常优雅,如果您对python库不太了解,这是一个原始的选择:

1-假设您有以下数组:

a = ['a','b','c','d','a','b','c','d','a']
2-然后我建议对其进行排序:

a.sort()
out[]: [a,a,a,b,b,c,c,d,d]
3-一旦对数组进行排序,您只需确定它何时从一个字母更改为另一个字母,如下代码所示:

a = ['a','b','c','d','a','b','c','d','a']
a.sort()
counter = 0
for i in range(len(a)):
    counter += 1
    try:
        if(a[i] != a[i+1]):
            print(a[i] + ' is ' + str(counter) + ' times' )
            counter = 0
    except:
        print(a[i] + ' is ' + str(counter) + ' times' )

我使用try-except来处理数组的末尾,不管怎样,代码是以一种简单的方式构建的,没有应用任何库,正如我前面提到的,前面的响应非常优雅,并且具有更好的性能,但这可能会帮助您提高对如何构建算法的理解。祝福继续编码:)

链接副本中的可能重复查看答案。您可以传递一个生成器表达式:
counter=counter(单词[0]表示lst中的单词)
@BradSolomon True,无疑性能更好。对于python新手来说可能更难理解。或者从Operator导入itemgetter和Counter(map(itemgetter(0),lst))
导入itemgetter和
。最常见的(1)
此解决方案非常复杂。