0

テーブルを作成する関数があります

--------------------------------------------------------------------
|Name  |     A      |     B     |     C      |    D     |    E      |
--------------------------------------------------------------------
|  1   |    1.0     |    2.0    |    3.0     |   4.0    |   5.0     |
|  2   |    6.0     |    7.0    |    8.0     |   9.0    |   0.0     |
|  3   |    1.1     |    2.2    |    3.3     |   0.1    |   0.3     |
--------------------------------------------------------------------

その後、ユーザーに何をする必要があるかを尋ねる必要があります。最小値または最大値を取得します。その後、行または列で最小値を取得するかどうかを尋ねる必要があります。これまでのところ、行 1 の最小値を取得できますが、行 2 または任意の列を実行しようとすると、行 1 に対して同じ値が返されます.

def minimum(y,l):
    for y in l:
        if y == 1:
            i= 0
            w=(l[i],l[i+1],l[i+2],l[i+3],l[i+4])
            a= min(l[i],l[i+1],l[i+2],l[i+3],l[i+4])
        elif y == 2:
            i = 5
            w=(l[i],l[i+1],l[i+2],l[i+3],l[i+4])
            a= min(l[i],l[i+1],l[i+2],l[i+3],l[i+4])
        return a


def menu(x,l): 
    if x == 1:
        make_table(l)
    if x == 2:
        y = input("enter a row (as a number) or a column (as an uppercase letter)")
        if y in [ '1','2','3']:
            mini = minimum(y, l)
            print("Minimum is:", mini)
    if x == 3:
        print ('bye')

最小で助けが必要です。その後、最大で同じように作業できます。ありがとうございます

4

3 に答える 3

0

numpy の 2d 配列に値を保存してみませんか?

import numpy as np

a = np.array(l).reshape(3,5)
minByCol = np.amin(a, axis=0) #array([ 1. ,  2. ,  3. ,  0.1,  0. ])
minByRow = np.amin(a,axis=1)  #array([ 1. ,  0. ,  0.1])

編集:何もインポートできないので、これはある種の恣意的な宿題の問題だと思います。

私はあなたのために宿題をする気はありませんが、ここにいくつかのアイデアがあります。ぎこちないのではなく、スライスしてみませんa=min(l[i],l[i+1],l[i+2],l[i+3],l[i+4])a = min(l[i:i+5])

また、ケースを取り、ケースiごとに の値を手動で設定する代わりに、 の値にi基づいて の値を設定してから、ステートメントyを取り除くことができます。if5列のテーブルの場合、行ごとに次のようになりますi = (y-1)*5

于 2013-10-31T01:37:29.737 に答える