几周前,我需要一个爬虫来收集和整理数据,所以我开始学习python。同一天,我写了一个简单的爬虫,但代码看起来丑陋得要死。主要是因为我不知道如何做某些事情,也不知道如何正确地搜索它们。示例:不是删除
和“在一句话里我做到了
extra_nr = extra_nr.replace("'", '')
extra_nr = extra_nr.replace("[", '')
extra_nr = extra_nr.replace("]", '')
extra_nr = extra_nr.replace(",", '')因为我不能做列出对象的事情,当我做str(列表对象)时,它看起来像
“这个”,“还有这个”
..。现在,我正在创建不和谐机器人,它将上传数据,我提供给它到谷歌电子表格。代码又长又难看。启动机器人大约需要2-3秒(如果这是正常的,我想我写得越多,启动它需要的时间就越长,这让我认为代码是垃圾)。它有时起作用,有时不起作用。
我的问题是
我怎么知道我写的是不是好东西?如果我只是像示例中那样不断添加东西,它会对我的程序产生什么影响呢?如果我有一个非常长的代码,我是否要拆分它,并只在需要的时候调用它的部分,或者它是如何工作的?
发布于 2021-03-02 04:48:33
要精通Python并编写优秀的代码,编写大量的Python并阅读他人的代码。学习针对不同问题类型的多种方法,并了解使用哪种方法以及何时使用。这是随着时间的推移需要大量练习的东西。至于参考资料,我强烈推荐“用Python自动化无聊的东西”这本书。
至于您的代码示例,您可以使用
为此:
def strip(my_string):
bad_chars = [*"[],'"]
return my_string.translate({ord(c): None for c in bad_chars})在给定转换表的情况下对字符串进行逐个字符的转换,因此您可以创建一个包含不希望设置为的字符的小型转换表
..。
您不需要的字符列表是通过解压(splatting)字符串创建的。
>>> [*"abc"] == ["a", "b", "c"]
True另一种选择是使用理解:
def strip(my_string):
bad_chars = [*"[],'"]
return "".join(c for c in my_string if c not in bad_chars)这里我们使用理解格式
要构建新的列表,请执行以下操作
%s来自
,只是指定在字符出现在
..。然后,我们将剩余的字符列表连接到一个没有指定字符的字符串中。
发布于 2021-03-02 04:30:23
通过阅读(或收听) Python最佳实践,您肯定会很快提高,这些参考资料包括
真正的Python
和
跟我聊聊Python
..。
同时,我建议开始使用一些代码分析器,比如
pylint
和
强盗
作为常规工作流程的一部分。
无论如何,欢迎来到Python的世界,尽情享受!:-)
发布于 2021-03-02 07:44:53
您可以使用maketrans()定义要删除的字符(第三个参数):
def clean(S): return S.translate(str.maketrans("","","[],'"))
clean("A['23']") # 'A23'https://stackoverflow.com/questions/66429104
复制相似问题