如果单词在列表中,我需要执行命令;
arrangement_01 = [['Block A', 'Bottom left', 'Up', 'O']]
arrangement_02 = [['Block B', 'Bottom right', 'Up', 'O']]
arrangement_03 = [['Block C', 'Bottom left', 'Up', 'O']]
arrangement_04 = [['Block D', 'Bottom right', 'Up', 'O']]
arrangement_52 = [['Block B', 'Bottom left', 'Down', 'O'],
['Block A', 'Bottom right', 'Left', 'O'],
['Block D', 'Top left', 'Right', 'O'],
['Block C', 'Top right', 'Up', 'X']]
如果' A座'有任何安排(如上所列) 如何定义函数以便执行命令?例如;
def stack_blocks(arrangement?)
if 'Block A' in anyarrangement
draw_blocka()
stack_blocks(arrangement_01)
(我知道这是错的,但有任何想法吗?)
对不起,如果我没有解释清楚。
答案 0 :(得分:0)
如果你想测试某个特定区块是否存在于任何"安排"中,你可以先提取所有这些区块,将其保存为一组,然后使用该组进行测试:
from itertools import chain
arrangement_01 = [['Block A', 'Bottom left', 'Up', 'O']]
arrangement_02 = [['Block B', 'Bottom right', 'Up', 'O']]
arrangement_03 = [['Block C', 'Bottom left', 'Up', 'O']]
arrangement_04 = [['Block D', 'Bottom right', 'Up', 'O']]
arrangement_52 = [['Block B', 'Bottom left', 'Down', 'O'],
['Block A', 'Bottom right', 'Left', 'O'],
['Block D', 'Top left', 'Right', 'O'],
['Block C', 'Top right', 'Up', 'X']]
omega = set([])
for L in chain(arrangement_01, arrangement_02, arrangement_03 , arrangement_04, arrangement_52):
omega.add(L[0])
if 'Block A' in omega:
print('Block A is present in some of the arrangements')
答案 1 :(得分:0)
在检查特定单词是否存在之前展平您的安排。
arrangement = [word for item in arrangement for word in item]
答案 2 :(得分:0)
此处您的功能略有修改:
def stack_blocks(arrangement, checkval)
Ret checkval in
[elem for sublist in arrangement for elem in sublist]
Stack_blocks(arrangement1, "Block A")
# returns true
答案 3 :(得分:0)
这应该可以解决问题:
arrangement_01 = [['Block A', 'Bottom left', 'Up', 'O']]
arrangement_02 = [['Block B', 'Bottom right', 'Up', 'O']]
arrangement_03 = [['Block C', 'Bottom left', 'Up', 'O']]
arrangement_04 = [['Block D', 'Bottom right', 'Up', 'O']]
arrangement_52 = [['Block B', 'Bottom left', 'Down', 'O'],
['Block A', 'Bottom right', 'Left', 'O'],
['Block D', 'Top left', 'Right', 'O'],
['Block C', 'Top right', 'Up', 'X']]
def stack_blocks(arrangement):
for item in arrangement:
if 'Block A' in item:
print "its there"
for value in vars().values():
if isinstance(value, list):
stack_blocks(value);
你在这里做的是你定义了所有变量,然后检查它们的值是否包含一个列表:
if isinstance(value, list):
如果计算结果为true,我们将变量值传递给您可以实现逻辑的函数。
希望这会有所帮助。