我如何在Python中打印数组?

时间:2014-09-18 11:44:44

标签: python arrays

在C ++中,我有以下代码,我想在Python中使用相同的代码。

#include iostream
using namespace std;

int main()

{

    int tab[10][10], m, n, i, j;

    cout << "\n number of rows n = ";
    cin >> n;
    cout << "\n number of columns m = ";
    cin >>m;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<m; j++)
        {
            cout << "\n tab[" << i << "][" << j << "] = ";
            cin >> tab[i][j];
        }
    }
    cout << endl;
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<m; j++)
            cout << "\t\t" << tab[i][j];
            cout << "\n\n";
    }
    return 0;
}

我试过这个:

def main():
    pass
    tab = []
    m = input ("Numbers of rows: ")
    n = input ("Numbers of columns: ")
    for i in xrange(m):
        for j in xrange(n):
            print tab[i:j], "= "
            arr = input ("tab[i:j]")
            print arr

我不知道要在for循环中打印tab[i][j] = "value input from keyboard"

1 个答案:

答案 0 :(得分:1)

在python中没有像iostream这样的实现。也没有多维数组。 你会用的      r = raw_input(&#34; Text:&#34;)

请求用户的参数。

 #!/usr/bin/env python

 # untested python code!

 n = int(raw_input("number of rows, n = "))
 m = int(raw_input("number of cols, m = "))

 tab = [[0]*n for i in xrange(m)] # generates [[0, 0, .. 0][0, 0, .. 0]...[0, .., 0]]

 for i in range(0, n):
     for j in range(0, m):
        tab[i][j] = int(raw_input("tab[%d][%d] = "%(i, j) ))

 for i in range(0, n):
     for j in range(0, m):
        print "\t\t%d" % tab[i][j]
     print "\n"

建议使用像numpy这样的数组。有更好的解决方案,如哈希或字典。

修改: 正如我上面所说:你需要首先通过

初始化数组
tab = [[0]*n for i in xrange(m)]

初始化后,通过编写

print tab

将显示整个结构。通过调用它来显示单个元素:

print tab[i][j]

使用冒号(:)指定范围, tab [i] [j]!= tab [i:j]

您仍然可以使用

打印一行
print tab[i]  # <-- only the first array in the array
print tab[i][j] # <-- only the element j. element in the i. array

干杯。