我一直在学习,工作和玩Python一年半.随着生物学家慢慢转向生物信息学,这种语言一直是我在实验室做出的所有主要贡献的核心.我或多或少地爱上了Python允许我表达漂亮解决方案的方式,以及语言的语义,允许从思想到可行代码的这种自然流动.
我想知道的是你对我在这个论坛或其他论坛中很少见到的一个问题的答案.对于那些正在改进Python的人来说,这个问题对我来说似乎很重要,但是他想知道他的下一步应该是什么.
让我总结一下我不想先问的问题;)
我想知道你的意见,是:
您将向Python熟练人员推荐哪些步骤,从学徒到大师状态(随意停止,无论您的专业知识在哪里),以便一个人不断改进,成为更好,更好的Python编码器,一步一步.SO上的一些人几乎看起来值得为他们的Python实力而敬拜,请赐教:)
我会喜欢的那种答案(但随意给读者带来惊喜:P)的格式或多或少是这样的:
我非常关心在不同的阶段知道你应该注意什么的意见,以便不断进步(当然有适当的努力).如果您来自特定的专业领域,请在此字段中讨论您认为合适的路径.
编辑:感谢您的好评,我又回到了Python改进的轨道!我真的很感激!
来自其他语言,我对列表中Python变量赋值的方式有点困惑.举个例子,让我们说:
x = [4, 5, 2, 70, 1]
y = x
y.sort()
Run Code Online (Sandbox Code Playgroud)
如果打印x和y,则两个变量的结果相同:
x = [1, 2, 4, 5, 70]
y = [1, 2, 4, 5, 70]
Run Code Online (Sandbox Code Playgroud)
我没想到这种行为.我认为x的序列不会改变,因为我只在列表y上应用了sort方法.
另一方面,如果我使用切片运算符将列表x的内容分配给列表y,那么我将达到预期的(至少在我的情况下)行为:
x = [4, 5, 2, 70, 1]
y = x[:]
y.sort()
Run Code Online (Sandbox Code Playgroud)
如果打印x和y,我看到列表x保持不变.
x = [4, 5, 2, 70, 1]
y = [1, 2, 4, 5, 70]
Run Code Online (Sandbox Code Playgroud)
有人可以解释背后的逻辑吗?
谢谢!