python

时间:2017-09-06 16:10:35

标签: python loops for-loop

请帮助我。

例如,如果我有a = [2, 5, 8, 4]b = [1, 3, 6, 9]。 我将如何使用“for”循环来选择'a'中的元素及其在'b'中的相应元素以用于其他函数?例如,在'a'中选择2并在'b'中选择1,然后在'a'中选择5,在'b'中选择3。

5 个答案:

答案 0 :(得分:3)

你想要的是zip()功能:

  

创建一个聚合来自每个迭代的元素的迭代器。

你可以像这样使用它:

a = [2, 5, 8, 4]
b = [1, 3, 6, 9]


def another_function(x, y):
    print(x, y)


for item_a, item_b in zip(a, b):
    another_function(item_a, item_b)

你得到:

(2, 1)
(5, 3)
(8, 6)
(4, 9)

您还可以使用map()功能:

  

返回一个迭代器,将函数应用于 iterable 的每个项目,从而产生结果。

您的函数应返回一个值:

def another_function(x, y):
    return x, y


result = map(another_function, a, b)

for item in result:
    print(item)

你得到的结果相同。

答案 1 :(得分:0)

for x, y in zip(a, b):
    some_func(x, y)

答案 2 :(得分:0)

您面临的情况称为“并行阵列”。维基百科有a great explanation and example code

答案 3 :(得分:0)

如果您知道列表的长度相同,请使用zip

for a_elem, b_elem in zip(a, b):
    # do stuff with the elements

如果您的列表长度不同,zip将为您提供最短迭代长度的序列。如果您需要一个最长可迭代长度的序列,请使用itertools.izip_longest

答案 4 :(得分:0)

难道你不能只在一个定义函数的for循环中使用相同的位置访问一个接一个的元素吗?

def access_A_and_B(a,b,number)
for i in range(len(a)): #itterate through a until you find your number
   if(a[i] == number and len(b) > i): # if a at position i is your number 
      return b[i] #ask b what the corresponding value is and return it
return -1 #default value if number not in a
  
    

号码:是您要搜索的号码