Python 在一组字符串中计算字母

Python 在一组字符串中计算字母,python,python-3.x,Python,Python 3.x,创建一个包含每个类成员名字的列表。然后构建一个循环,从列表中打印出同学的名字,并计算每个名字中的字母数。在循环的末尾,打印具有最长名称的类伙伴的名称。 例如,如果类中的姓名列表是Dave、Tom、Ivan、Margaret和Maria,则输出应为 Dave 4 Tom 3 Ivan 4 Margaret 8 Maria 5 Longest Name is Margaret 我该怎么做呢。我需要帮助。谢谢 这是我目前的代码: from collections import Counter na

创建一个包含每个类成员名字的列表。然后构建一个循环,从列表中打印出同学的名字,并计算每个名字中的字母数。在循环的末尾,打印具有最长名称的类伙伴的名称。 例如,如果类中的姓名列表是Dave、Tom、Ivan、Margaret和Maria,则输出应为

Dave 4
Tom 3
Ivan 4
Margaret 8
Maria 5
Longest Name is Margaret
我该怎么做呢。我需要帮助。谢谢

这是我目前的代码:

from collections import Counter 
names = ["Ryan", "Ian", "Pat", "Dom", "Louis", "Ryan", "Marisa", "Owen", "Matt", "Fines", "Jack", "Gare", "Annie", "Brett", "Cole"] 
print(names) 
for letter in names: 
    print(names.count(letter)) 

您的打印命令错误

from collections import Counter
names = ["Ryan", "Ian", "Pat", "Dom", "Louis", "Ryan", "Marisa", "Owen", "Matt", "Fines", "Jack", "Gare", "Annie", "Brett", "Cole"]
print(names)
for letter in names:
    print((letter))
len()返回括号中的长度,如果是len(您的_列表),则返回列表中的元素数

max(你的_列表,key=len)这里的重要部分是“key=len”,否则max(你的_列表)将返回pythons排序方法的最大值,例如,选择一个字母最接近字母表末尾的单词,例如z。key=len使其返回最长的元素

names = ["Ryan", "Ian", "Pat", "Dom", "Louis", "Ryan", "Marisa", "Owen",
         "Matt", "Fines", "Jack", "Gare", "Annie", "Brett", "Cole"]
for name in names:
    print (name,' ',len(name))
longest = max(names, key=len)
print ('\nLongest name: ',longest,' with ',len(longest),' letters.')
印刷品:

Ryan   4
Ian   3
Pat   3
Dom   3
Louis   5
Ryan   4
Marisa   6
Owen   4
Matt   4
Fines   5
Jack   4
Gare   4
Annie   5
Brett   5
Cole   4

Longest name:  Marisa  with  6  letters.
{'mystring': 10}
或者,如果您想存储信息以供以后使用,我想您可以使用字典来存储信息,并且每次迭代列表中的名称时,都要对照字典中名称的长度检查其长度

在字典中查找值时,通常使用方括号中的“键”进行查找,如果键是一个变量,则可以这样进行:

my_dictionary = {} #create an empty dictionary
variable = ('mystring')
my_dictionary [variable] = 10
print (my_dictionary)
印刷品:

Ryan   4
Ian   3
Pat   3
Dom   3
Louis   5
Ryan   4
Marisa   6
Owen   4
Matt   4
Fines   5
Jack   4
Gare   4
Annie   5
Brett   5
Cole   4

Longest name:  Marisa  with  6  letters.
{'mystring': 10}
但是如果不使用变量来添加字典键,而是使用字符串,则必须这样编写键

my_dictionary ['mystring'] 
或使用整数作为键:

my_dictionary [1]
无论如何,这是您的代码:

longest = {'name': '', 'length': 0}

for name in names:
    print (name,' ',len(name))
    if len(name) > longest ['length']:
        longest ['name'] = name
        longest ['length'] = len(name)

print ('\nLongest name: ',longest['name'],
       ' with ',longest['length'],' letters.')

不要让我们做你的家庭作业。告诉我们您尝试了什么,失败了什么,也许通过这种方式我们可以帮助您。“我如何完成[整个家庭作业]”对于堆栈溢出来说不是一个合适的问题。向我们展示您编写的代码,并描述它如何满足或不满足您的期望。从集合导入计数器名称=[“Ryan”、“Ian”、“Pat”、“Dom”、“Louis”、“Ryan”“Marisa”、“Owen”、“Matt”、“Fines”、“Jack”、“Gare”、“Annie”、“Brett”、“Cole”]姓名中字母的打印(姓名):打印(姓名。计数(字母))我试过了,它会打印名字,会在数字上吐出一堆,但我不知道它在数什么。这不算什么。请在我回答后更新他的问题……问题从一开始就被问到了。@ScottHunter谢谢,现在意识到:)!你是最棒的。非常感谢。