考虑这一点的最佳方法是什么?

时间:2019-12-15 06:27:48

标签: python random

我是python的新手,而且我已经听到很多关于“ Pythonic”解决常见任务的信息。我为我正在处理的项目编写了以下脚本,该项目需要从字符串列表中选择随机字符串并将该字符串分解为键和值。脚本为此目的而工作,但是让我想知道高级开发人员对编码的看法。

作为高级开发人员,您将如何考虑解决类似的问题?

  • 您将采用哪种方式编写此类脚本,为什么?

  • 您如何决定要使用的模块?

  • 我做错了什么或正确的事情,为什么?

  • 您会尽快编写代码还是花更多时间?

'''

import random
import re

def add_list(wordlist):
    newword = str(re.split("=", random.choice(wordlist)))
    print(newword)
    output = open('Logfile.txt', 'a')
    output.write("\n" + newword)
    return output

add_list(wordlist = ['1=one', '2=two', '3=three', '4=four',])

'''

2 个答案:

答案 0 :(得分:1)

老实说,任何适合您的方法。可读性>>>更智能的代码。

但是我想指出一个小问题。

切勿在未关闭文件指针/文件的情况下打开它们。即使您在函数内部。

如果您习惯于忘记文件内容,一个简单的解决方法是在python中使用with运算符。当您超出with open ('Logfile.txt',a) as f:的范围时,这将关闭文件。

希望这会有所帮助!

答案 1 :(得分:1)

  1. 我只需执行random.choice(wordlist).split('=')即可在您的代码中获取newword。不需要re
  2. 主要通过体验,当然还有Google
  3. 您做的一件坏事是返回文件对象。您无法确定在使用该功能的任何地方打开的文件都会关闭。使用功能的目的之一是可重用性。如果返回newword并处理将文件写入其他位置,则更好。您可以将所有返回值附加到一个列表中(取决于您的用例),并将所有返回值同时写入文件中,以减少IO操作。除非绝对必要with open(file, x),否则请使用open(), close()。确保文件在R / W之后关闭。
  4. 尽可能快不是一个好方法。当代码为您提供所需的输出时,您应该继续。但是,如果您不确定它是否正确,请向有经验的人咨询。总是。

PS:使用有意义的变量名