2

私は list を持っており、T = [[2,5],[4,7],[8,6],[34,74],[32,35],[24,7],[12,5],[0,34]]T 内の各埋め込みリストのすべての要素が不等式を満たすかどうかを確認したいと考えています。

これまでのところ、私は持っています:

upper = 10
lower = 0
for n in range(len(T)):
    if all(lower < x < upper for x in T):
        'do something'
    else:
        'do something different'

したがって、各 T[n] のすべての要素が 0 から 10 の間にある場合、何かを実行したいし、それ以外の場合は別のことを実行したいと考えています。上記のリストでは、T[0]、T[1]、および T[2] は不等式を満たしますが、T[3] は満たしません。

4

4 に答える 4

2

複雑なコードは避けて、次のようにしnumpyます。

a = np.array(T)

test = (a>0) & (a<10)
#array([[ True,  True],
#       [ True,  True],
#       [ True,  True],
#       [False, False],
#       [False, False],
#       [False,  True],
#       [False,  True],
#       [False, False]], dtype=bool)

test.all(axis=1)
#array([ True,  True,  True, False, False, False, False, False], dtype=bool)

を呼び出すリストとして再利用できますtest.any(axis=1).tolist()

于 2013-08-12T14:43:53.197 に答える
1

はい、私もnumpyに行きます:

import numpy as np

T = [[2,5],[4,7],[8,6],[34,74],[32,35],[24,7],[12,5],[0,34]]
T = np.array(T)
for t in T:
    if np.all(t>0) & np.all(t<10):
        print t
    else:
        print 'none'

[2 5]
[4 7]
[8 6]
none
none
none
none
none
于 2013-08-12T15:04:28.780 に答える
0

リスト内包表記を使用して、インデックスとチェックされた状態のリストを取得することもできます。

>>> T = [[2,5],[4,7],[8,6],[34,74],[32,35],[24,7],[12,5],[0,34]]
>>> upper = 10
>>> lower = 0
>>> result = [(i, all(lower < x < upper for x in l)) for i, l in enumerate(T)]
[(0, True), (1, True), (2, True), (3, False), (4, False), (5, False), (6, False), (7, False)]
于 2013-08-12T14:38:40.317 に答える