Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python映射中执行循环?_Python_Loops_Map - Fatal编程技术网

如何在Python映射中执行循环?

如何在Python映射中执行循环?,python,loops,map,Python,Loops,Map,我想在地图上做一个循环。我的代码如下: for (abcID,bbbID) in map(abcIdList,bbbIdList): buildXml(abcID,bbbID) 我该怎么做才能让它工作?嗯,我想你应该用zip()来代替 >>> zip((1, 2), ('a', 'b')) [(1, 'a'), (2, 'b')] 呃,我想你想要的是zip() >>> zip((1, 2), ('a', 'b')) [(1, 'a'), (

我想在地图上做一个循环。我的代码如下:

for (abcID,bbbID) in map(abcIdList,bbbIdList):
        buildXml(abcID,bbbID)

我该怎么做才能让它工作?

嗯,我想你应该用
zip()
来代替

>>> zip((1, 2), ('a', 'b'))
[(1, 'a'), (2, 'b')]

呃,我想你想要的是
zip()

>>> zip((1, 2), ('a', 'b'))
[(1, 'a'), (2, 'b')]
你搞错了,或者

map
对iterables进行操作,并接受两个参数,一个函数和一个iterable:

>>> def addOne(x):
...     return x+1
... 
>>> l = [1, 2, 3, 4]
>>> print(map(addOne, l))
[2, 3, 4, 5]
因此,它将作为第一个参数传递的函数应用于序列的每个元素,并以列表的形式返回新序列(注意,这种行为在python3中是不同的,在python3中,您得到的是一个iterable而不是list)

zip()。它采用任意数量的iterables,并将每个迭代步骤合并为一个元组:

>>> l1, l2 = [1, 2, 3, 4], [5, 6, 7, 8]
>>> print(zip(l1, l2))
[(1, 5), (2, 6), (3, 7), (4, 8)]
同样,结果值在python2中是一个列表,在python3中是一个迭代器。你可以像在你的问题中那样,使用一个普通的for循环来迭代它。对于这种压缩迭代器,您还可以创建一个
dict
(也可以称为映射,因为它将项目映射到值):

但是,不能直接迭代DICT中的键值对:

>>> for key, value in d:
...   print(key)
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
但我们指示python根据我们的价值观进行操作。所以它试图从一个int中得到两个值,这显然不起作用。从这个角度来看,这个错误似乎是合理的。因此,要迭代键值对,必须使用:

>>> for key, value in d.items():
...   print(key, value)
... 
1 5
2 6
3 7
4 8
(输出可能会有所不同,具体取决于您是否从
\uuuuuuuuuuuuu
导入了
打印功能)。对于大型dict和python2,
iteritems()
将比
items()
快,因为
items()
将所有键值对放在列表的第一位,而
iteritems()
只创建一个惰性迭代器。在python3上,
items()
已经做了类似的事情

我希望这能澄清一下情况。

你弄混了

map
对iterables进行操作,并接受两个参数,一个函数和一个iterable:

>>> def addOne(x):
...     return x+1
... 
>>> l = [1, 2, 3, 4]
>>> print(map(addOne, l))
[2, 3, 4, 5]
因此,它将作为第一个参数传递的函数应用于序列的每个元素,并以列表的形式返回新序列(注意,这种行为在python3中是不同的,在python3中,您得到的是一个iterable而不是list)

zip()。它采用任意数量的iterables,并将每个迭代步骤合并为一个元组:

>>> l1, l2 = [1, 2, 3, 4], [5, 6, 7, 8]
>>> print(zip(l1, l2))
[(1, 5), (2, 6), (3, 7), (4, 8)]
同样,结果值在python2中是一个列表,在python3中是一个迭代器。你可以像在你的问题中那样,使用一个普通的for循环来迭代它。对于这种压缩迭代器,您还可以创建一个
dict
(也可以称为映射,因为它将项目映射到值):

但是,不能直接迭代DICT中的键值对:

>>> for key, value in d:
...   print(key)
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
但我们指示python根据我们的价值观进行操作。所以它试图从一个int中得到两个值,这显然不起作用。从这个角度来看,这个错误似乎是合理的。因此,要迭代键值对,必须使用:

>>> for key, value in d.items():
...   print(key, value)
... 
1 5
2 6
3 7
4 8
(输出可能会有所不同,具体取决于您是否从
\uuuuuuuuuuuuu
导入了
打印功能)。对于大型dict和python2,
iteritems()
将比
items()
快,因为
items()
将所有键值对放在列表的第一位,而
iteritems()
只创建一个惰性迭代器。在python3上,
items()
已经做了类似的事情


我希望这能澄清一点情况。

你想让它做什么,它现在做什么?你知道
map()
应该做什么吗?也许我迟到了,但这里有一个关于地图和列表的简单教程:你想让它做什么,它现在做什么?你知道
map()
应该做什么吗?也许我迟到了,但这里有一个关于地图和列表的简单教程:我接受你的答案,因为它确实解决了我的问题。谢谢你,伊格纳西奥。祝你今天愉快!!:-)(系统告诉我在7分钟内接受这个答案(不是现在),我不知道为什么。我会那么做。:-D)我会接受你的答案,因为它确实解决了我的问题。谢谢你,伊格纳西奥。祝你今天愉快!!:-)(系统告诉我在7分钟内(不是现在)接受这个,我不知道为什么。到时候我会做的。:-D)谢谢你,乔纳斯。我接受了你的回答。祝您有个美好的一天!谢谢你,乔纳斯。我接受了你的回答。祝您有个美好的一天!