计算一组字符串中的字母

时间:2017-04-12 17:01:05

标签: python python-3.x

使用每个班级成员的名字创建一个列表。然后构建一个循环,从列表中打印出同学的名字,并计算每个名字中的字母数。在循环结束时,打印具有最长名称的类配对的名称。 例如,如果您班级中的名字列表是Dave,Tom,Ivan,Margaret和Maria,则输出应为。

ErrorTemplate

我该怎么做?我需要帮助。感谢

这是我目前的代码:

non-HTTP 200

2 个答案:

答案 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))