首页 > 解决方案 > 如何按字母顺序将项目放在桌子上的循环中?

问题描述

这是我的作业:

编写一个程序,询问 10 名学生的姓名和年龄。以表格格式按字母顺序打印学生的姓名和年龄,同时还将年龄最大的学生标识为“团队负责人”。

这就是我到目前为止所做的。评论是我认为我应该做但不确定的事情:

#from tabulate import tabulate

studentNames = []
for i in range(10):
          item = input("Please enter a name: ")
          if len(item) > 0 and item.isalpha():
                 studentNames.append(item)

#Something like this? 
#print(tabulate(studentNames([[]], headers=['Team Leader', 'Students']))

我的老师没有教我制表,但我的研究表明我需要使用它,但我认为这是错误的,我不知道如何按字母顺序进行。我很抱歉代码不好,我什至都不好意思发布它。

任何帮助,将不胜感激。谢谢你。

标签: python

解决方案


当我为你解决这个练习时,我认为它没有帮助。我建议您弄清楚如何添加输入,例如 var 表。

table = [("A", 20), ("Z", 21), ("C", 29), ("B", 24)]
sorted_table = sorted(table, key=lambda row: row[0])
leader = max(table, key=lambda row: row[1])

要打印它,您可以简单地遍历行并打印如下内容:

print("{0} | {1}".format(row[0], row[1]))

我的完整解决方案是,我建议您仅在再次卡住时才使用它。

table = []
for i in range(10):
    name = input("Please enter a name: ")
    age = input("Enter the age: ")
    if len(name) > 0 and name.isalpha():
        table.append((name, age))

sorted_table = sorted(table, key=lambda row: row[0])
leader = max(table, key=lambda row: row[1])

print("{0:<12} | {1:<4}".format("Names", "Age"))
print("-" * 19)
for row in sorted_table:
    print("{0:<12} | {1:<4}".format(row[0], row[1]))

print("Team Leader is: {0}".format(leader[0]))

推荐阅读