使用每个班级成员的名字创建一个列表。然后构建一个循环,从列表中打印出同学的名字,并计算每个名字中的字母数。在循环结束时,打印具有最长名称的类配对的名称。 例如,如果您班级中的名字列表是Dave,Tom,Ivan,Margaret和Maria,则输出应为。
ErrorTemplate
我该怎么做?我需要帮助。感谢
这是我目前的代码:
non-HTTP 200
答案 0 :(得分:2)
len()返回括号中任何内容的长度,如果它是len(your_list),它将返回列表中元素的数量
max(your_list,key = len)这里的重要部分是" key = len",否则max(your_list)将根据pythons排序方法返回最大值,选择一个字母最近的字母例如,字母表的结尾。 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.
或者,如果您想存储信息以供以后使用,我想您可以使用字典来执行此操作,并且每次迭代列表中的名称时,请根据名称的长度检查它的长度在字典里。
在词典中查找值时,您可以通过"键"通常用方括号括起来,如果键是变量,你可以这样做:
my_dictionary = {} #create an empty dictionary
variable = ('mystring')
my_dictionary [variable] = 10
print (my_dictionary)
打印:
{'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.')
答案 1 :(得分:-3)
您的打印命令错误!
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))