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

kikaylee 2020-11-11

èæ¯

ä»å¤©ååä¸ï¼æ¨ææ好å¤çµåè¡ä¸ç IT å·¥ç¨å¸ä»¬æç¯å¤æï¼ä¸ºè¿ä¸ªå¨æ°ç欢çè´­ç©èæ¤èªãè¿è®°å¾ä¸å¹´åæ们å¬å¸ä¸ä¸ªäº§åä¸çº¿åä¸å¨æ¶ï¼åå¬å®¤åæèµ·“è· Bug æ­»æå°åº”ç横å¹ï¼Bug å¯ä»¥è¯´æ¯ç¨åºåç死穴ãææ¯æ¬¡é¢æå°ä»£ç æ Bug æ¶ï¼ç¥è²ç«é©¬ç´§å¼ èµ·æ¥ã

ç¼ç¨è·¯ä¸ï¼Bug è½½é;å车ä¹é´ï¼å车ä¹å¸ãæ¬ææ´çäºä¸äºæå¨é®ç­ææ¯ç½ç«ä¸çå°çãåç­è¿çæä»·å¼çé®é¢ãæå½æ¯ä¸ªäººç¥è¯åºäº!

IDEA ç¼è¾çåè½

IDEA 强大çèªå¨ä»£ç è¡¥å¨åè½å¿«æ·é® Tabï¼ä»£ç æ ç­¾è¾å¥å®æåï¼æTabï¼çæ代ç ã

  • div.class.out + Tab
  • 常ç¨çæ fori/sout/psvm+Tab å³å¯çæ循ç¯
  • System.outãmain æ¹æ³ç­ boilerplate æ ·æ¿ä»£ç ï¼è¦è¾å¥ for(User user : users) åªéè¾å¥user.for+Tab
  • è¾å¥ for(User user : users) åªéè¾å¥user.for+Tab
  • è¦è¾å¥Date birthday = user.getBirthday(); åªéè¾å¥user.getBirthday().var+Tab å³å¯ã

Python 中æ¥çæ个模åçç¨æ³

Python å½ä»¤è¡è¾å¥åï¼å¯ä»¥ä½¿ç¨ help æ¹æ³æ¥çæ¹æ³çç¨æ³ï¼ä¾å¦ï¼

import re 
help(re.compile) 

å¨æ§å¶å°è¾åºå¾å°è¯¥æ¹æ³çæè¿°ä¿¡æ¯ï¼

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

Python ä¸å¿½ç¥é¦è¡

Python å¤ç csv æ件æ¶ï¼pandas.read_csv(“data.csv”) é»è®¤ä¼å°ç¬¬ä¸è¡ä½ä¸ºæ é¢è¡ä¿¡æ¯ï¼ä¸åå¤çãæä¹è®©å®ä»ç¬¬ä¸è¡å¼å§å¤çå¢?header=None å¯ä»¥è¾¾å°è¯¥ç®çã

df =  pd.read_csv("data.csv", header=None) 

对象æåå°è年代çè¿ç¨

对象ä¼åå¨Edenåéï¼ä¸æ°ç代对象æåå°è年代æå¤ç§æåµ

  • Eden åºæ»¡æ¶ï¼è¿è¡ Minor GCï¼å½ Eden åä¸ä¸ª Survivor åºä¸­ä¾ç¶å­æ´»ç对象æ æ³æ¾å¥å° Survivor 中ï¼åéè¿åéæä¿æºå¶æå转移å°è年代中ã
  • è¥å¯¹è±¡ä½ç§¯å¤ªå¤§, æ°ç代æ æ³å®¹çº³è¿ä¸ªå¯¹è±¡ï¼-XX:PretenureSizeThreshold å³å¯¹è±¡ç大å°å¤§äºæ­¤å¼, å°±ä¼ç»è¿æ°ç代, ç´æ¥å¨è年代åé, æ­¤åæ°åªå¯¹ Serial å ParNew 两款æ¶éå¨ææã
  • å­æ´»æéé¿ç对象ç´æ¥è¿å¥è年代ã

Python è¾¹éåè¾¹å é¤

è¾¹éåè¾¹å é¤æ°ç»ä¼å¯¼è´æ°ç»ç´¢å¼èå´ååï¼å¯¼è´ç¨åºåºéï¼è¿å¨ Java 中ä¹æ¯éè¦æ³¨æçé®é¢ãä½æ¯ï¼Python çæ°æ®å¤çæ¹æ³æä¾äºä¸ä¸ªå·§å¦çå¤çæ¹æ³ã

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]}}' 

æè·¯ï¼

  • åè¿å¯¹æ¥å¿æ空格åå²ï¼å¾å°ç¬¬äºåçæ¥å¿è®°å½æ¶é´æ³å
  • å对æ¶é´åæåå·åå²ï¼å¾å°æ¶é´åï¼å¹¶ææ¶é´åç´¯å 
  • è¾åºæ¶é´åç´¯å å¼

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 é®é¢

相关推荐