14

3 つのリストの長さを比較して、変数の各セットを比較する以外に、それらがすべて同じサイズであることを確認するより良い方法はありますか? 10 個のリストで長さが等しいことを確認したい場合はどうでしょうか。どうすればそれを行うことができますか?

4

3 に答える 3

23

使用all():

length = len(list1)
if all(len(lst) == length for lst in [list2, list3, list4, list5, list6]):
    # all lists are the same length

または、リストの長さが異なるかどうかを調べるには、次のようにします。

length = len(list1)
if any(len(lst) != length for lst in [list2, list3, list4, list5, list6]):
    # at least one list has a different length

all()andany()は短絡することに注意してください。たとえば、異なる長さの場合、 throughlist2の比較は実行されません。list3list6

リストが個別の変数ではなく、リストまたはタプルに格納されている場合:

length = len(lists[0])
if all(len(lst) == length for lst in lists[1:]):
    # all lists are the same length
于 2013-05-23T18:05:40.840 に答える
4

リストがリスト (と呼ばれるmy_lists) に格納されていると仮定すると、次のようなものを使用します。

print len(set(map(len, my_lists))) <= 1

これは、あなたが持っているすべてのリストの長さを計算し、my_listsこれらの長さをセットに入れます。それらがすべて同じ場合、セットには1つの要素が含まれます(またはリストがない場合はゼロ)。

于 2013-05-23T18:06:34.333 に答える