Python列表边遍历边删除,怎么用才不报越界错误呢?

睡魔的谎言 2020-11-12 16:11:10
java Python spring CAS IntelliJ IDEA


IDEA 编辑的功能

IDEA 强大的自动代码补全功能快捷键 Tab,代码标签输入完成后,按Tab,生成代码。

  1. div.class.out + Tab
  2. 常用的有 fori/sout/psvm+Tab 即可生成循环
  3. System.out、main 方法等 boilerplate 样板代码,要输入 for(User user : users) 只需输入user.for+Tab
  4. 输入 for(User user : users) 只需输入user.for+Tab
  5. 要输入Date birthday = user.getBirthday(); 只需输入user.getBirthday().var+Tab 即可。

Python 中查看某个模块的用法

Python 命令行输入后,可以使用 help 方法查看方法的用法,例如:

import re
help(re.compile)
复制代码

在控制台输出得到该方法的描述信息: 在这里插入图片描述

Python 不忽略首行

Python 处理 csv 文件时,pandas.read_csv(“data.csv”) 默认会将第一行作为标题行信息,不做处理。怎么让它从第一行开始处理呢?header=None 可以达到该目的。

df = pd.read_csv("data.csv", header=None)
复制代码

对象晋升到老年代的过程

对象优先在Eden分配,且新生代对象晋升到老年代有多种情况 (1)、Eden 区满时,进行 Minor GC,当 Eden 和一个 Survivor 区中依然存活的对象无法放入到 Survivor 中,则通过分配担保机制提前转移到老年代中。 (2)、若对象体积太大, 新生代无法容纳这个对象,-XX:PretenureSizeThreshold 即对象的大小大于此值, 就会绕过新生代, 直接在老年代分配, 此参数只对 Serial 及 ParNew 两款收集器有效。 (3)、存活期限长的对象直接进入老年代。

Python 边遍历边删除

边遍历边删除数组会导致数组索引范围变化,导致程序出错,这在 Java 中也是需要注意的问题。但是,Python 的数据处理方法提供了一个巧妙的处理方法。 在这里插入图片描述 使用 sorted(list) ,会产生一个新的数组,所以据此删除原来数组的元素,不会改变下标,不会出错。即遍历过程中是用 sorted(list) 返回的新数组,而删除是操作原来的数组,即遍历用了一份拷贝,修改完原数据后得到最终需要的结果了。

__name__的含义

经常看到 Python 会看到 if __name__ == '__main__':这样的代码,这段代码是什么作用呢,去掉这段代码后,为什么程序不会执行呢?

__name__ 是系统内置变量,代表所在模块名字也即所在文件名。当模块直接运行时,如 demo_list.py 文件被直接运行,__name__ 的值为 “__main__”,所以 if __name__ == '__main__': 通常是触发主流程的。

推导式的过程

推导式的过程:是将整个最后的结果再存入容器的,而不是一边遍历一边推导的。 会在推导式执行完成后,一次性将结果写入 tmp_list 变量,而不是执行推导式的过程中就直接写入 tmp_list 变量。

tmp_list = [i for i in num_list if i not in tmp_list]
复制代码

这是无效的,tmp_list 并不是预期推导的值。

解析 ngix 日志按小时统计行数

给定一个 ngix 日志文件,解析时间列并按时间统计每小时的日志行数。日志文件格式为:

192.168.1.1 [22/Oct/2019:23:58:54 +0800] "POST /dasdhj/sadqwda/q.log HTTP/1.1" 200 133 0.022 "-" "Apache-HttpClient/4.3.3 (java 1.5)" "-"
复制代码

编写 Shell 解析命令为:

awk '{ print $2}' ngix.log | awk -F ":" '{a[$2]=a[$2]+1} END {for(i in a) { print "time:",i,"count:",a[i]}}'
复制代码

思路:

  1. 先进对日志按空格分割,得到第二列的日志记录时间戳列
  2. 再对时间列按冒号分割,得到时间列,并按时间列累加
  3. 输出时间和累加值

input 表单不触发 onclick 事件

一个简单的触发隐藏一个 h1 标签的事件,但是没有执行,代码为:

<h1 id="EleId">请点击此文本!</h1>
<input type="button" value="点击隐藏" οnClick="alert('111');">
复制代码

反复测试,最终确认是 input 的用法错误了,使用 button 按钮元素就可以了:

<button id="clear-button" onclick="clearInput();">点击隐藏</button>
复制代码

线程池关闭导致 AtomicInteger 计数不准确问题

AtomicInteger 类是使用 CAS 原则来实现对数值类型的原子操作的,而且并发效率比 synchronized 高很多。今天看到一个因为线程池提前关闭,导致任务中对 AtomicInteger 计数操作未执行,进而打印的计数值不准确的问题。

这个问题侧面验证了原子类的高效,此外,还有一个知识点是关于 ConcurrentLinkedQueue 类的,判断队列是否还有元素,应该使用 isEmpty() ,而非 size()。因为是链表,size 操作需要遍历列表统计元素总数;而 isEmpty() 直接判断 first 是否为 null ,效率比前者高。

ajax 请求 415 问题

SSM 项目中出现 ajax 415,出现了请求类型为 json 时后台 415 的问题,这个主要是提交请求时的文件类型和 SpringMVC 配置的类型不一致导致的:

  1. type:json
  2. 后台要指定 medias 包含 json 类型

作者:毕小宝
 
版权声明
本文为[睡魔的谎言]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4811659/blog/4714307

  1. 利用Python爬虫获取招聘网站职位信息
  2. Using Python crawler to obtain job information of recruitment website
  3. Several highly rated Python libraries arrow, jsonpath, psutil and tenacity are recommended
  4. Python装饰器
  5. Python实现LDAP认证
  6. Python decorator
  7. Implementing LDAP authentication with Python
  8. Vscode configures Python development environment!
  9. In Python, how dare you say you can't log module? ️
  10. 我收藏的有关Python的电子书和资料
  11. python 中 lambda的一些tips
  12. python中字典的一些tips
  13. python 用生成器生成斐波那契数列
  14. python脚本转pyc踩了个坑。。。
  15. My collection of e-books and materials about Python
  16. Some tips of lambda in Python
  17. Some tips of dictionary in Python
  18. Using Python generator to generate Fibonacci sequence
  19. The conversion of Python script to PyC stepped on a pit...
  20. Python游戏开发,pygame模块,Python实现扫雷小游戏
  21. Python game development, pyGame module, python implementation of minesweeping games
  22. Python实用工具,email模块,Python实现邮件远程控制自己电脑
  23. Python utility, email module, python realizes mail remote control of its own computer
  24. 毫无头绪的自学Python,你可能连门槛都摸不到!【最佳学习路线】
  25. Python读取二进制文件代码方法解析
  26. Python字典的实现原理
  27. Without a clue, you may not even touch the threshold【 Best learning route]
  28. Parsing method of Python reading binary file code
  29. Implementation principle of Python dictionary
  30. You must know the function of pandas to parse JSON data - JSON_ normalize()
  31. Python实用案例,私人定制,Python自动化生成爱豆专属2021日历
  32. Python practical case, private customization, python automatic generation of Adu exclusive 2021 calendar
  33. 《Python实例》震惊了,用Python这么简单实现了聊天系统的脏话,广告检测
  34. "Python instance" was shocked and realized the dirty words and advertisement detection of the chat system in Python
  35. Convolutional neural network processing sequence for Python deep learning
  36. Python data structure and algorithm (1) -- enum type enum
  37. 超全大厂算法岗百问百答(推荐系统/机器学习/深度学习/C++/Spark/python)
  38. 【Python进阶】你真的明白NumPy中的ndarray吗?
  39. All questions and answers for algorithm posts of super large factories (recommended system / machine learning / deep learning / C + + / spark / Python)
  40. [advanced Python] do you really understand ndarray in numpy?
  41. 【Python进阶】Python进阶专栏栏主自述:不忘初心,砥砺前行
  42. [advanced Python] Python advanced column main readme: never forget the original intention and forge ahead
  43. python垃圾回收和缓存管理
  44. java调用Python程序
  45. java调用Python程序
  46. Python常用函数有哪些?Python基础入门课程
  47. Python garbage collection and cache management
  48. Java calling Python program
  49. Java calling Python program
  50. What functions are commonly used in Python? Introduction to Python Basics
  51. Python basic knowledge
  52. Anaconda5.2 安装 Python 库(MySQLdb)的方法
  53. Python实现对脑电数据情绪分析
  54. Anaconda 5.2 method of installing Python Library (mysqldb)
  55. Python implements emotion analysis of EEG data
  56. Master some advanced usage of Python in 30 seconds, which makes others envy it
  57. python爬取百度图片并对图片做一系列处理
  58. Python crawls Baidu pictures and does a series of processing on them
  59. python链接mysql数据库
  60. Python link MySQL database