簡體   English   中英

在python中聲明二維列表

[英]Assert 2-d list in python

在python中,我正在嘗試檢查給定列表是否為二維列表。 我應該使用一個assert語句,但是我不知道如何創建一個。

到目前為止,我有

assert type(x) == list

我知道這是不正確的,並檢查一維列表。 我該如何解決?

檢查x是否是您已經完成的列表

assert type(x) == list

檢查x是否為列表,並且x的元素為列表-

assert type(x)==list
assert reduce(lambda a,b : type (b) == list and a, x, True)

檢查x是否為列表,x的元素是否為列表,並且每個元素的長度相同-

assert type(x)==list
assert reduce(lambda a, b: type (b) == list and a, x, True)
l = len(x[0])
assert reduce(lambda a, b: len(b) == l and a, x, True)

您可以使用all使它更具可讀性的方法來代替reduce

檢查x是否為列表,x的元素是否為列表,並且每個元素的長度相同-

assert type(x)==list
assert all([type(i) == list for i in x])
l = len(x[0])
assert all([len(i) == l for i in x])

我做了這個

l=[[]] assert type(l) == list and type(l[0]) == list

但是我在一維的情況下得到了indexError,所以我改用了它。

l=[]
try:
    assert type(l) == list and type(l[0]) == list
except IndexError:
        assert False

Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
AssertionError

也許有更好的方法,但對我而言並不明顯。

更好的方法(但漫長的過程)可能是...

 assert type(l) == list and len({ type(el) for el in l }) == 1 and { type(el) for el in l }.pop() == list

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM