我有一个返回两个列表的功能:
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。
我希望这是有道理的。可能有更好/更简单的方法来做到这一点,但我不确定那是什么。简而言之,我试图弄清楚如何从两个不同的列表中打印相同索引处的两个值。
非常感谢任何帮助。
答案 0 :(得分:0)
这是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
为list1
,ticket_queue[0]
为list2
。
让我们重现你的功能:
ticket_queue[1]
您可以def lists():
return list1,list2
将函数返回的两个列表放在一起,并同时迭代两个列表。这也是一个迭代器,就像解决方案1一样,因此对内存友好。
zip()
让我们完全符合您的代码:
for one, two in zip(*lists()):
print(one)
print(two)