请问这道pta的题用python程序怎么实现啊

我自己写代码的话总是运行超时,看过很多c语言解法,但是我没学过c看不懂,请各位教教我用python怎么实现

img

img


我的代码如下

import sys
n, c = map(int, input().split())
students = []
for i in range(n):
 student = input().split()
 student[2] = int(student[2])
 students.append(student)
students.sort(key=lambda x: (x[c-1], int(x[0])))
for student in students:
 sys.stdout.write(student[0] + ' ' + student[1] + ' ' + str(student[2]) + '\n')

pta 对 python 不太友好,没有优化,同样的逻辑 C 能过,但 python 超时也不奇怪
你要么把代码贴出来,看看还有没有可以优化的地方,要么把链接分享出来,我也去试试

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7517046
  • 你也可以参考下这篇文章:【PTA】【C语言】【Python】输出二维数组每一列的最小值
  • 除此之外, 这篇博客: PTA习题:表达式转换----请设计程序将中缀表达式转换为后缀表达式。(用python编写)中的 细节 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 接下来走一下代码逻辑的一些细节,我们就结束了。

    • 把要输出的内容写入到了ans变量里面,免得再写多余的部分处理输出格式问题,输出时直接对ans进行格式化
    • 我们在式子整体的外面加了一对括号,便于判断
    • 我们把操作数前正负号的判断放入了左括号的判断逻辑中
    • 操作数可能有浮点数,请注意我们对数字判断的那一部分

    1. 你当然可以不进行优先级排序,用大量的if语句来替代,然后让你的代码量骤增 ↩︎

    2. 这里使用了一个字典来作为优先级比较依据 ↩︎

    3. 出栈可以代表是输出到标准输出流中 ↩︎

  • 以下回答由chatgpt基于相关博客总结生成:

    问题: PTA题目Python怎么实现? 题目运行超时,是否可以优化?

    参考资料:

    输入格式: 输入一个由任意整数组成的列表。

    思路: 写个阶乘的函数。

    输出样例: cos(-3.1) = -0.9991

    问题1:怎么用Python实现这道题目?

    解决方案1:考虑使用Python内置函数cos()可以直接求解余弦。只需要输入数字作为参数,会返回浮点数弧度值的余弦值。

    直接将输入值作为cos方法的参数调用即可。

    import math

    value = float(input().strip()) print(f"cos({value:.1f}) = {math.cos(value):.4f}")

    问题2: 该如何优化以避免超时的问题?

    解决方案2: 针对具体题目进行相应优化。

    首先,PTA网站的超时问题可能与题目数据量较大有关。因此,可以考虑部分进行时间复杂度上的优化。

    对于算法实现的优化,需根据具体的算法和数据内容进行思路和代码上的优化。因此,对于此处提供的参考资料中的代码,

    因为缺少完整的问题描述,我们无法准确地判断算法性能瓶颈所在,无法针对性地优化其代码。

    如果在实现其他算法时出现运行超时问题,可以考虑使用以下方法进行优化:

    1.充分利用内置库函数,如使用list.remove()代替for loop进行元素删除等;

    2.提前计算,利用变量储存中间过程的结果,避免多次重复计算;

    3.降低时间复杂度,例如使用二分查找等算法;

    4.减少代码执行次数,例如减少循环或条件判断等。