Week's note

(1) python
這週五面試了間公司,被詢問了個關於一個 python 不錯的問題,筆記一下。
[Q]
a = [[0]*3]*4
a[0][1] = 3
a[1][1] = ?
[A]
    主要是python對於常數(constant/immutable variable)所指向的記憶體空間皆同.
像是 0, "a", 3.189 等常數有各自的記憶體空間。但是list, dic等型別的宣告則會分配不同的空間。
>>> a=[[1,2],[1,2]]
>>> id(a[0])
4336602216
>>> id(a[1])
4336652728
>>> a=[[1,2]]*2
>>> id(a[0])
4336652440
>>> id(a[1])
4336652440
    另外就是 list 的乘法。過去針對數值的運算免不了都用 numpy, scipy 或 conda 內建地資料結構, 像是 array, frame, matrix 等,直接作 list multiplication 我通常只會寫 '='*10 做排版或者採用 list comprehension 的寫法,什麼時候會直些相乘?還沒見過。

不過L大建議可以利用 (1) dis 去 dump python bytecode 了解語法差異。(2) 針對 immutable 的特性,用 ctypes.memmove() 就讓此特性消失了,很機車的解法 lol 

(1) SQL
    昨天L大問了個關於資料庫的字串搜尋的問題,紀錄一下。假設要找字串 ABC
    Mysql 語法  SELECT * FROM [table] WHERE [column] LIKE '%ABC%'
[Q] 如何讓它更快?
[A] 
    a. 若 table 提供 full text indexing, 用關鍵詞 CONTAINS [stackoverflow ]
SELECT * FROM [table] WHERE [column] CONTAINS ([column],'ABC');
    b. 若是 postgreSQL 可以試試 trigram indexing (similarity search)
    c. 或是給定的字串是 postfix, 可以作 reverse text indexing.
    另外 % 在 database query 的專有名詞叫作 wildcard,因此這個問題比較好的問法是(參考

How can you index a LIKE search that has only one wildcard at the beginning of the search term ('%TERM')?


1、~っぱなし 表示动作一直持续。表放置不管、置之不理之意。
省エネ(しょうえね)のために、エアコンやテレビなどをつけっぱなしにしないことです。
朝から、立ちっぱなしに仕事をして疲れだ。
2、あのちょっと伺いたいんですが。
3、~向き
この食堂は量が多くて安いので若者向きだ。
4、~ようにも~ない ~したいけど、できない
時間がなくて、昼ごはんを食べようにも食べられなかった。
5、物の形(かたち)や特徴(とくちょう)や状態(じょうたい)を説明する
6、~したがって 随着…。表示随着某一方面发生变化,其它方面也发生改变。
工業化が進む(すすむ)にしたがって、田んぼが減っていきました。
世界の人口の増加(ぞうか)にしたがって、食糧(しょくりょう)問題が深刻化(しんこくか)している。


植物(しょくぶつ)

Comments

Popular posts from this blog

股票評價(Stock Valuation) - 股利折現模型

openwrt feed的使用

R 語言:邏輯回歸 Logistic Regression using R language (二)