如何将第二个值添加到同一个循环?

时间:2017-04-28 12:41:02

标签: python linux

我正在编写脚本来比较今天的数据和昨天的数据,数据在三个列表中。今天的数据有时没有,这里的数据不可用。

S = ['abcd5934','abcd5935','abcd5936','abcd7154','abcd7155','abcd7156']

昨天 - [(u'abcd7154',u'1'),(u'abcd7155',u'2'),(u'abcd7156',u'3')]

今天 - []

所以我想查看昨天的列表和今天的列表S列表,是否可以在打印S中使用相应的另一个值。 EX -print out put abcd5934值不是昨天:空 abcd5935价值不是昨天:空 abcd5936价值不是昨天:空 abcd7154价值在昨天:1 abcd7155价值在昨天:2 abcd7156价值在昨天:3

if len(today) == 0:

               for server in S:

                        if server in yesterday:
                                print "YES "


                        else:
                                print "NO " 

你能帮我添加第二个值到同一个循环吗?

4 个答案:

答案 0 :(得分:0)

我认为你看起来像这样。即使这不是你的问题的正确答案。但它是你正在寻找的方法。

if any( x in S for x in yesterday):
  print("Yes")
else:
  print("No")

答案 1 :(得分:0)

你的问题真的不清楚,但@ mtkilic的回答帮助我理解......某事。

看起来你想要像:

for server in S:
    for yesterday_1, yesterday_2 in yesterday:
        if server == yesterday_1:
            print "YES : " + str(yesterday_2)
        else:
            print "NO " 

答案 2 :(得分:0)

@B。 Barbieri,我认为你的代码可以胜任,但我们可能不需要为昨天的每个元素打印“NO”。我想我们也可以在找到匹配后停止迭代。

for server in S:
    if server in [x[0] for x in yesterday]:
        print("YES: {}".format([x[1] for x in yesterday if x[0] == server][0]))
    else:
        print("NO")

答案 3 :(得分:0)

我已经找到了解决方案,感谢所有支持我的人并鼓励我。

S = ['abcd5934','abcd5935','abcd5936','abcd7154','abcd7155','abcd7156']

Yesterday = [(u'abcd7154', u'1'), (u'abcd7155', u'2'), (u'abcd7156', u'3')]

Today = []


y_servers = [srvr[0] for srvr in Yesterday]
value = [Yes[1] for Yes in Yesterday]
print y_servers
print value
v = 0
for srv in S:

    if srv in y_servers:
        print("YES, VALUE= %s") % v
    else:
        print("NO Value = Empty")
    v +=1