Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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中有没有一种方法可以在循环的一次迭代中循环dict中的多个键值对_Python_Python 3.x_Dictionary_Python 3.6 - Fatal编程技术网

python中有没有一种方法可以在循环的一次迭代中循环dict中的多个键值对

python中有没有一种方法可以在循环的一次迭代中循环dict中的多个键值对,python,python-3.x,dictionary,python-3.6,Python,Python 3.x,Dictionary,Python 3.6,我有下面的示例代码,并且对Python中是否有一种方法可以在单个循环迭代中循环多个键值对感兴趣?如果您看到我的示例,我有一个包含四个键值对的字典,那么python中有没有一种方法可以在一次传递中循环这个过程 my_dict = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'} count = 1 for key, value in my_dict.items(): print('the count

我有下面的示例代码,并且对Python中是否有一种方法可以在单个循环迭代中循环多个键值对感兴趣?如果您看到我的示例,我有一个包含四个键值对的字典,那么python中有没有一种方法可以在一次传递中循环这个过程

my_dict = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}

count = 1
for key, value in my_dict.items():
    print('the count is {} the key is {} and the value is {}'.format(count, key, value))

    count += 1


预期回报数据如下所示

iteration count 1 - key1 value1, key2 value2, key3 value3, key4 value4
可以使用with来保留当前索引

import os

out = 'count: {}, key: {}, val: {}'
my_dict = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
os.linesep.join([out.format(c, *kv) for c, kv in enumerate(my_dict.items())])
输出:

count: 0, key: key3, val: value3
count: 1, key: key2, val: value2
count: 2, key: key1, val: value1
count: 3, key: key4, val: value4
条件示例:

要回答您评论中的问题,如果您想根据条件添加或不添加项目(顺便说一句,如果可以添加更多的
):


这不是一个循环吗?你到底想要什么?我的意思是说一个循环中有一个迭代的单循环。如果看到计数,则迭代计数为4。我试着在一次迭代中做到这一点。一次迭代的循环不是一个循环,而是一个简单的语句。在这一次迭代中你想做什么?除了整个dict本身,循环迭代将返回什么?这是我一直在寻找的。但另一个问题是,有没有办法在这个问题上添加if条件?例如,如果key=='key1'做某事
count: 0, key: key3, val: value3
count: 1, key: key2, val: value2
count: 2, key: key1, val: value1
count: 3, key: key4, val: value4
[(c, *kv) for c, kv in enumerate(my_dict.items()) if c % 0 and len(kv[1]) < 5)
def do_something(c, kv):
    key, value = kv
    if key == 'key1':
        pass  # do something

    # somewhere return True or False depending on your logic

[(c, *kv) for c, kv in enumerate(my_dict.items()) if do_something(c, kv)