簡體   English   中英

我應該用什么代替isinstance()

[英]What should I use instead of isinstance()

我必須解析一些由列表組成的對象。 但是它可以在list內的list內有list: obj=[[smth1],[[smth2],[smth3]]]每個smthX也可以是一個列表。

我正在尋找一個我知道的“第二層列表”中的值。 在我的示例中,它可能在[[smth2],[smth3]]

我現在正在做的事情是迭代我的對象,並測試我正在迭代的對象是否正確。 如果是這樣,我會尋找自己的價值。

  for list in obj :
    if isinstance(list, obj) :
      for souslist in list :
        I LOOK FOR MY VALUE

但是我到處都在讀( http://canonical.org/~kragen/isinstance/很多stackoverflow線程), isinstance()的使用僅用於特殊場合(而我的使用看起來並不特殊) )

在使用isinstance()之前,我曾嘗試在try / except中測試list [0]返回了我什么,但感覺甚至更糟。 還有其他方法可以以干凈的方式實現這一目標嗎? (我無法處理我要處理的obj格式)

如果您要先查找包含兩個項目(列表)的子列表,則需要檢查長度(如果您確定所有項目都是列表),然后使用isinstance()子列表中的所有項目是否都是列表isinstance()

for sub in obj:
    if len(sub) == 2 and all(isinstance(i, list) for i in sub): # you can add " and isinstance(sub, list)" if you are not sure about the type of sub 
        look_val(sub)

暫無
暫無

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

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