是否可以匹配两个元组,逐个比较每个元素,并确定更改发生的位置。
注意: runA和runB输出在循环中,因此它意味着它不是硬编码的。 runA和runB可以是范围tool01到tool100或tool01 only等,具体取决于循环结果到我的查询。只是简单的工具在for循环中,因此工具no可以更多或更少。
输出#1的示例结果:
runA = [(u'tool01', '21'), (u'tool02', '22'), (u'tool03', '23')]
runB = [(u'tool01', '21'), (u'tool02', '22'), (u'tool03', '22')]
预期结果#1:
print 'there is a changes on tool03'
我的输出#2的示例结果:
runA = [(u'tool01', '21'), (u'tool02', '22'), (u'tool03', '23')]
runB = [(u'tool01', '20'), (u'tool02', '21'), (u'tool03', '23')]
预期结果#2:
print 'there is a changes on tool01'
print 'there is a changes on tool02'
我的输出#3的示例结果:
runA = [(u'tool01', '21'), (u'tool02', '22'), (u'tool03', '23')]
runB = [(u'tool01', '21'), (u'tool02', '22'), (u'tool03', '23')]
预期成果#3:
print 'there is no change'
任何建议或基础代码,提前感谢。
注意: runA和runB输出在循环中,因此它意味着它不是硬编码的。 runA和runB可以是范围tool01到tool100或tool01 only等,具体取决于循环结果到我的查询。只是简单的工具在for循环中,因此工具no可以更多或更少。
答案 0 :(得分:0)
for i in runA - 1:
If runA[i][1] != runB[i][1]:
print 'there is a changes in ' + runA[i][0]
这假设有两件事:
- 列表长度相等
- 元组名称具有相同的索引
醇>
正如您的一位评论者建议的那样,使用dict会更容易,因为您可以遍历密钥并使用d[key]
访问成员
答案 1 :(得分:0)
#/bin/python
confirm_change=False
runA = [(u'tool01', '21'), (u'tool02', '22'), (u'tool03', '23')]
runB = [(u'tool01', '20'), (u'tool02', '21'), (u'tool03', '23')]
for i in runA:
for j in runB:
if i[0]==j[0] and not i[1]==j[1]:
confirm_change=True
print("there is a change in",i[0])
if confirm_change==False:
print("There is no change")
答案 2 :(得分:0)
下一个功能应该做你需要的:
def matchTuples(runA, runB):
equal = True
for i in range(0, len(runA) ):
if runA[i] != runB[i]:
equal = False
print 'there is a change on ' + runA[i][0]
if equal:
'there is no change'
迭代列表以检查它们是否相等。如果有更改,则会打印已更改的元组的名称。
最后,如果没有检测到任何变化(也就是说,如果变量“equal”仍为True),则打印出“没有变化”。
答案 3 :(得分:0)
$_POST['name'] . ' - ' . $_POST['food']