Python在两个单独的列表中获取值

时间:2018-03-11 15:38:37

标签: python

我有一个返回两个列表的功能:

def get_ticket_queue()
    ...bunch of stuff
    return ticket_id_list,ticket_description_list

它们都返回相同数量的值,它们从XML数据中获取值。一个抓住ticket_id,一个抓住ticket_summary

这就是我目前如何使用它来确定它是好票还是坏票:

ticket_queue = get_ticket_queue()

for ticket_id in ticket_queue[0]:
    bad_ticket_id = next_steps(ticket_id) #next_steps is a separate function that performs some other work on the values.

    if "good" not in bad_ticket_id:
        print (bad_ticket_id)
    else:
        print "good:

这包括从第一个列表(ticket_id_list)获取和使用ticket_id。但是,当我打印bad_ticket_id时,我还需要在ticket_description_list中获取相应的索引值,这样我就可以打印ticket_summary。

我希望这是有道理的。可能有更好/更简单的方法来做到这一点,但我不确定那是什么。简而言之,我试图弄清楚如何从两个不同的列表中打印相同索引处的两个值。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

解决方案1:

这是this.fetch is not a function迭代器的典型用例。我们的想法是迭代您的enumerate(),并从list1获取相应的元素:

list2

在您的具体情况下,list1 = ['a','b','c','d','e'] list2 = ['x','y','z','t','u'] for i, e in enumerate(list1): print(e) # This is your list1 element print(list2[i]) # This is the corresponding list2 element list1ticket_queue[0]list2

解决方案2:

让我们重现你的功能:

ticket_queue[1]

您可以def lists(): return list1,list2 将函数返回的两个列表放在一起,并同时迭代两个列表。这也是一个迭代器,就像解决方案1一样,因此对内存友好。

zip()

让我们完全符合您的代码:

for one, two in zip(*lists()):
    print(one)
    print(two)