我有一个小问题:目前,我会做以下事情:
", ".join((item[0][i][1] for i in range(len(item[0]))))
如何插入附加语句"if item[0][i][1] not in blockedList"
?
非常感谢您的帮助。
答案 0 :(得分:4)
只需将其添加到列表理解中:
", ".join(item[0][i][1] for i in range(len(item[0])) if item[0][i][1] not in blockedList)
您可以按如下方式简化代码:
', '.join(i[1] for i in item[0] if i[1] not in blockedList)
答案 1 :(得分:0)
这是一个连接二维数组/列表的简单示例。
blocked = [(0,0,0,1),(0,0,1,1),(0,1,0,1),(0,1,1,1),(1,0,0,1),(1,0,1,1),(1,1,1,1)]
data = [(0,0,0,0),(0,0,0,1),(0,0,1,0),(0,0,1,1)]
print ':'.join([''.join(str(col) for col in row) for row in data if row not in blocked])
0000:0010
我为列表/数组的递归连接设计了一个简单的语法。这绝不是官方语法。请参阅以下官方链接。
LIST = [FUNCTION(ATOM) for ATOM in LIST if CONDITION]
STR = 'DELIM'.join(LIST)
现在,如果您注意到,现在可以轻松地将LIST
替换为LIST
STR
语法。
以下是解析的官方python语法规则:
Python 2语法: https://docs.python.org/2/reference/grammar.html
Python 3语法: https://docs.python.org/3/reference/grammar.html