如何在编写紧凑但复杂的代码和用Python编写简单但较长的代码之间进行选择?

2024-04-19 02:38:02 发布

您现在位置:Python中文网/ 问答频道 /正文

在Hackerrank(https://www.hackerrank.com/challenges/merge-the-tools/problem)上做这个挑战时,我遇到了一个用户写的高票答案。紧凑很好,但我发现很难理解。你知道吗

def merge_the_tools(string, k):
    S, N = input(), int(input()) 
    for part in zip(*[iter(S)] * N):
        d = dict()
        print(''.join([ d.setdefault(c, c) for c in part if c not in d ]))

我是这样编码的:

def merge_the_tools(string, k):
    # s1. cut string into list of substrings
    t=[]
    start=0
    k=int(k)
    end=k
    while(end<len(string)+1):
        t.append(string[start:end])
        start+=k
        end+=k
    #test: print(t)

    #s2. strip repeating char from t_i by iterating thru
    for ti in t:
        si=""
        for char in ti:
            if char not in si:
                si+=char
        print(si)

根据Python标准,哪种答案说明了更好的实践?我浏览了一下PEP8,没有找到问题的答案。你知道吗


Tags: the答案inforinputstringdefmerge
1条回答
网友
1楼 · 发布于 2024-04-19 02:38:02

这完全取决于您的预期受众和代码的预期用途。如果代码只适合你,就用你最了解的方式去做。紧凑的代码通常是,但并不总是更有效,因为您必须编写更少的代码,并且如果有错误,那么可以查看的代码也更少。如果你想让其他人看到你的代码并从中学习,那么一定要选择可读性更高的代码,给他们空间找出捷径,这样他们就可以觉得自己的工作很有成就感和自豪,但还是回到问题上来。没有正确或错误的方法(参考紧凑与可读),要做到这一点,完全取决于情况。你知道吗

相关问题 更多 >