【问题标题】:Question about Arrays in Python and Perl?关于 Python 和 Perl 中的数组的问题?
【发布时间】:2011-08-08 14:41:29
【问题描述】:

如何翻译以下内容,它是perl中的一个数组,我认为我可以将其翻译成python作为一个列表。我正在尝试创建一个程序,该程序采用二维形状和基本 DNA 折纸信息,并提供每个 DNA 链的节点、成本和范围,并添加缓冲区和清理区。程序接收到信息后,将所需的二维 DNA 形状转换为三维 DNA 折纸。

在 Perl 中:

@xCoords = ();
@yCoords = ();
@zCoords = ();

在 Python 中,我认为正确的是什么?

array(xCoords) = [] 
array(yCoords) = []
array(zCoords) = []

【问题讨论】:

  • 我想你已经在这里收到了这个问题的答案:stackoverflow.com/questions/6900775/…。学习 Python 和 Perl 并重写代码比依靠其他人的语言知识逐行翻译更好。
  • 你应该看看 NumPy,它简化了数字数据数组的处理。

标签: python perl arrays


【解决方案1】:

基础数组:

  1. xCoords = []
    yCoords = []
    zCoords = []
    

多维数组:

  1. xCoords = [[]];
    yCoords = [[]];
    zCoords = [[]];
    
  2. xCoords = []
    yCoords = []
    zCoords = []
    xCoords.append([])
    yCoords.append([])
    zCoords.append([])
    
  3. Credit here
    声明和填充二维数组的示例

    xCoords = [[]*n for x in xrange(n)]
    yCoords = [[]*n for x in xrange(n)]
    zCoords = [[]*n for x in xrange(n)]
    

【讨论】:

  • 1.是正确的,但太复杂了。首先,[]*n 结果为[],但开销很大。但至少它避免了做[[]]*n 的常见错误,它创建了一个具有n 倍相同列表的列表。 [[] for x in xrange(n)] 完全够用了。
  • 我想我找到了我最初发现的地方,我会用链接更新我的答案。注意:它通过n 2D 数组声明了一个n
  • 3.等效于[[] for x in xrange(n)] - 两者都创建一个包含 n 个空列表的列表。
【解决方案2】:

你想要这个 Python:

xCoords = []
yCoords = []
zCoords = []

您不需要在 Python 中用变量声明类型,因为 Python 是动态类型的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多