刪除無效的項目我創建了蟒蛇以下列表DynamoBIM
:Python從列表
a = [["f", "o", "c"], [null, "o", null], [null, "o", null]]
我想從列表中刪除無效的項目來創建此列表:
a = [["f", "o", "c"], ["o"], ["o"]]
我已經嘗試過list.remove(x)
,filter
s,for
-loops,和其他一些方法,但似乎無法擺脫這些bugger。
我該怎麼做?
刪除無效的項目我創建了蟒蛇以下列表DynamoBIM
:Python從列表
a = [["f", "o", "c"], [null, "o", null], [null, "o", null]]
我想從列表中刪除無效的項目來創建此列表:
a = [["f", "o", "c"], ["o"], ["o"]]
我已經嘗試過list.remove(x)
,filter
s,for
-loops,和其他一些方法,但似乎無法擺脫這些bugger。
我該怎麼做?
其實空是不是蟒蛇,他們應該是字符串如
list_value = [["f", "o", "c"], ['null', "o", 'null'], ['null', "o", 'null']]
[filter(lambda x: x!='null' and x!=None, inner_list) for inner_list in list_value]
[['f', 'o', 'c'], ['o'], ['o']]
您還可以通過嵌套列表解決理解:
[[for i in inner_list if i!='null' and not i] for inner_list in list_value]
假設你的意思是零None
,您可以使用列表理解:
>>> null = None
>>> nested_list = [["f", "o", "c"], [null, "o", null], [null, "o", null]]
>>> [[x for x in y if x] for y in nested_list]
[['f', 'o', 'c'], ['o'], ['o']]
如果null是一些其他的價值,你可以改變上面的設置爲別的東西的null
值,改變修真:
>>> null = None # Replace with your other value
>>> [[x for x in y if x != null] for y in nested_list]
[['f', 'o', 'c'], ['o'], ['o']]
您可以使用一個簡單的列表理解:
>>> a = [["f", "o", "c"], [None, "o", null], [null, "o", None]]
>>> a = [[sub for sub in item if sub] for item in a]
>>> a
[['f', 'o', 'c'], ['o'], ['o']]
>>>
這相當於:
a = [["f", "o", "c"], [None, "o", null], [null, "o", None]]
new = []
for item in a:
_temp = []
for sub in item:
if sub:
_temp.append(sub)
new.append(_temp)
a = new
>>> a = [["f", "o", "c"], [None, "o", null], [null, "o", None]]
>>> new = []
>>> for item in a:
... _temp = []
... for sub in item:
... if sub:
... _temp.append(sub)
... new.append(_temp)
...
>>> a = new
>>> a
[['f', 'o', 'c'], ['o'], ['o']]
>>>
a = [["f", "o", "c"], [None, "o", None], [None, "o", None]]
l = []
for i in a:
l.append(filter(lambda x: x is not None, i))
print (l)
[['f', 'o', 'c'], ['o'], ['o']]
假設你的意思是None
,你可以嘗試使用filter()
功能:
a = [["f", "o", "c"], [None, "o", None], [None, "o", None]]
print [filter(None,x) for x in a]
>>>
[['f', 'o', 'c'], ['o'], ['o']]
如何嵌套您的列表? – sshashank124
什麼是'null'?你的意思是「沒有」? – taskinoor
謝謝大家!這些都是很好的答案;但這似乎是Dynamo的一個問題。正如@Arun所指出的那樣,'null'不在Python中。 Dynamo創建這些'null'項目來代替'None',它們在某種程度上不能被識別爲字符串。如果有人在Dynamo中使用Python時遇到了這個問題,我使用'Object.IsNull'和'List.FilterByBoolMask'組件來刪除'null'項。 ![Valid XHTML](http://tinypic.com/r/14dd6vq/8)。 – Blake