python 使用入的坑

如测试代码,并没有将li、li_ 的交集查询出来

li=[1,2,3,4,5]
li_=[2,5,6,7,9]
for i in li_:
    if i in li:
        li_.remove(i)
print li_
# 输出 [5, 6, 7, 9]

原因

for 遍历列表时记录的是元素的索引位置,如i=2符合条件,此时li 列表会将2元素删除,则5元素的下标就变成了0,而此时for记录的是遍历下标为1的元素,所以就跳过了5

所以要避免在遍历中对列表变更

最简单的解决方法是将符合条件的元素追加到新列表中,如

new=[]
li=[1,2,3,4,5]
li_=[2,5,6,7,9]
for i  in li_:
    if i in li:
        new.append(i)
print new
#输出结果是:[2, 5]

原文地址:https://www.cnblogs.com/Bccd/p/8676268.html

时间: 2024-10-07 16:21:39

python 使用入的坑的相关文章

学Python要避免哪些坑,如何巩固好基础

学Python要避免哪些坑?零基础怎么入门Python?Python入门简单.语法简洁.功能强大,非常适合零基础入门IT行业的人学习.随着人工智能时代的来临,企业纷纷选择使用Python进行开发,Python从业人员需求及薪资福利也在不断提高.很多人选择学Python,但零基础学Python一定要避免跳入这些坑! ? ? 1.错误的使用变量.在Python中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建.类变量作为字典进行内部处理的,并且遵循方法解析顺序(MRO). 2.滥用表达式作

python学习遇到的坑

1. 定义变量名和函数名或关键字重名: typeerror 在网上随便copy了一个处理csv文件的源码,运行中总是在input时出错,差错没注意变量声明,导致浪费不少时间 在红色剪头处,input的输出用input变量名存放,当再次调用input函数时,就会提示:TypeError: str object is no callable 2. python输入csv文件内容有多余空行 Python中的csv的writer,打开文件的时候,要通过binary模式去打开,即带b的,比如wb,ab+等

win7 python pdf2image入坑经历

Python开发菜鸟入坑 项目要求pdf转成图片,网上较多的方案对于windows极其不友好,wand,Pythonmagick(win下载地址:www.lfd.uci.edu/~gohlke/pythonlibs/#pythonmagick),imagemagick(win下载地址:www.imagemagick.org/download/),poppler(win下载地址://blog.alivate.com.au/poppler-windows/)等多个方案尝试后仍然不行,并且第三方的模块

Python多进程相关的坑

Python的multiprocessing模块实现了多进程功能,但官方文档上只有一些比较简单的用法,主要是使用函数作为process的target,而如何在class中使用多进程并没有多讲解.google出两篇比较详细的文章,建议从它们入门: https://pymotw.com/2/multiprocessing/basics.html https://pymotw.com/2/multiprocessing/communication.html 下面记录一下自己这周在python多进程上碰

Python的16个“坑”

1. 不要使用可变对象作为函数默认值 代码如下: In [1]: def append_to_list(value, def_list=[]): ...: def_list.append(value) ...: return def_list ...: In [2]: my_list = append_to_list(1) In [3]: my_list Out[3]: [1] In [4]: my_other_list = append_to_list(2) In [5]: my_other_

Python模拟入栈出栈操作

目标: 1.编写菜单,提示用户操作选项(push,pop,view,quit) 2.规则:定义列表,先入栈,后出栈,后入栈,先出栈 1.模拟入栈.出栈操作 >>> list1 = [] >>> list1.append('a') >>> list1 ['a'] >>> list1.append('b') >>> list1 ['a', 'b'] >>> list1.pop() 'b' >>

入CTF坑

这周在学习kali linux工具的同时入了CTF的坑,觉得其中的密码学很有趣 找了许多试题练习,主要来自CTF论坛.南邮.实验吧三个练习平台. 分享一些write up给感兴趣的人参考,当然其中如有错误之处,希望大家能 积极指出,我会尽快处理,有则改之无则加勉.最后就是不出意外的话,下周 将会上传关于Nmap使用的一些整理后的教程,慢慢期待吧!

Python 中的那些坑总结——持续更新

1.三元表达式之坑 很显然,Python把第一行的(10 + 4)看成了三元表达式的前部分,这个坑是看了<Python cookbook>(P5)中学到的,书中的代码: 2.Python生成器(yield)+递归 前两天一直纠结python的生成器递归该怎么写,今天看了os.walk()的代码恍然大悟,编程真是博大精深啊!不多说,上代码: from os import path def walk(top, topdown=True, onerror=None, followlinks=Fals

python网络编程的坑(持续更新)

初学python,踩了许多坑...每天都学一点吧..(大佬绕过) 1.session的用法: session是python requests库中的一个重要功能.session可以存储用户的数据并且存储在服务器端,相当于用户的一个唯一凭证. cookie也会存在在session中. 如果说我们想要用session进行保持会话的请求以及后续的post,get等操作,以及返回的话.需要先用一边session. 我的理解是session刚开始是空的,先进行一次get的操作,然后保存了我们的用户信息.之后