0

1 つの列のすべての値が同じ場合に true を返すメソッドを作成するにはどうすればよいですか。

myListtrue = [['SomeVal', 'Val',True],
             ['SomeVal', 'blah', True]] #Want this list to return true
                                        #because the third column in the list 
                                        #are the same values.

myListfalse = [['SomeVal', 'Val',False],
              ['SomeVal', 'blah', True]] #Want this list to return False
                                         #because the third column in the list 
                                         #is not the same value
same_value(myListtrue) # return true
same_value(myListfalse) # return false

メソッドヘッドの例:

def same_value(Items):
      #statements here
      # return true if items have the same value in the third column.
4

2 に答える 2

3

最後の列からセットを作成します。集合理解が最も簡単です。セットの長さが 1 の場合、その列のすべての値は同じです。

if len({c[-1] for c in myList}) == 1:
    # all the same.

または関数として:

def same_last_column(multidim):
    return len({c[-1] for c in multidim}) == 1

デモ:

>>> myList = [['SomeVal', 'Val',True],
...          ['SomeVal', 'blah', True]]
>>> len({c[-1] for c in myList}) == 1
True
>>> myList = [['SomeVal', 'Val',False],
...          ['SomeVal', 'blah', True]]
>>> len({c[-1] for c in myList}) == 1
False
于 2013-07-10T11:31:01.857 に答える