python使用zip函数同时使用list的remove,使得迭代器向前多走了一位,如何简洁的解决?

新手上路,请多包涵

问题描述

如以下下代码:

    for k,v in zip(key,value):
                if li.find(k) != -1:
                    li = li.replace(k,v)
                    key.remove(k)
                    value.remove(v)

key 和 value是两个列表,li是一个字符串,目的是将key中的每一个值替换为value中的值。
因为还是个新手,写的时候没想太多...然后debug发现是remove先删除了列表中的元素使得迭代器向前进了一位,然后zip函数又使得迭代器进了一位,相当于多进了一位。
该怎么尽量简洁的解决呢?

阅读 1.8k
1 个回答
for k, v in zip(key, value):  
  li = li.replace(k, v)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏