带有条件字符串的FOR循环

时间:2016-10-28 14:34:10

标签: python

在我的代码中,我有一个循环到一个字典......我得到了所需的输出,如下所示..

dict = {"apple":5,"banana":3, "mangos":2}
columns = ('apple', 'banana','mangos')
for column in columns:
    value = dict.get(column)
    print column,value

输出:

apple 5
banana 3
mangos 2

但如果我的词汇变为

dict = {"apple":5,"Oranges":3, "mangos":2}

相同的for循环会给我以下输出

columns = ('apple', 'banana','mangos')
for column in columns:
    value = dict.get(column)
    print column,value

我得到了关注,这是预期的

apple 5
banana None
mangos 2

现在的问题是,有没有办法设置列循环

columns = ('apple', 'banana','mangos')

这样第二个值'banana'可以是'banana'还是'orange'?

2 个答案:

答案 0 :(得分:3)

dict = {"apple":5,"oranges":3, "mangos":2}
columns = ('apple', 'banana' , 'oranges','mangos')
for column in columns:
    value = dict.get(column)
    if value:
        print(column,value)

检查值是否存在,然后打印它或OrderedDict,有太多好的答案,你可以检查dict中是否有'oranges'或'banana',然后根据你的columns更改你找到了什么。

dict = {"apple":5,"oranges":3, "mangos":2}
if 'banana' in dict:  
    columns = ('apple', 'banana','mangos') 
else:
    columns = ('apple', 'oranges','mangos') 
for column in columns:
    value = dict.get(column)
    print(column,value)

因为Ev而被编辑使用if 'banana' in dict。 Kounis的评论!感谢。

答案 1 :(得分:0)

d = {"apple":5,"banana":3, "orange":2}
c = ('apple', 'banana','mangos')

# print direct values
for k, v in d.items():
    print k, v

# print any values of the predefined columns + additionnal ones
ext = set(list(c) + d.keys())
for col in ext:
    print col, d.get(col)

输出1:

  

橙色2

     

apple 5

     

香蕉3

输出2:

  

橙色2

     

芒果无

     

apple 5

     

香蕉3