Week's note
(1) python
這週五面試了間公司,被詢問了個關於一個 python 不錯的問題,筆記一下。
[Q]
主要是python對於常數(constant/immutable variable)所指向的記憶體空間皆同.
像是 0, "a", 3.189 等常數有各自的記憶體空間。但是list, dic等型別的宣告則會分配不同的空間。
這週五面試了間公司,被詢問了個關於一個 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、~したがって 随着…。表示随着某一方面发生变化,其它方面也发生改变。
工業化が進む(すすむ)にしたがって、田んぼが減っていきました。
世界の人口の増加(ぞうか)にしたがって、食糧(しょくりょう)問題が深刻化(しんこくか)している。
植物(しょくぶつ)
省エネ(しょうえね)のために、エアコンやテレビなどをつけっぱなしにしないことです。
朝から、立ちっぱなしに仕事をして疲れだ。
2、あのちょっと伺いたいんですが。
3、~向き
この食堂は量が多くて安いので若者向きだ。
4、~ようにも~ない ~したいけど、できない
時間がなくて、昼ごはんを食べようにも食べられなかった。
5、物の形(かたち)や特徴(とくちょう)や状態(じょうたい)を説明する
6、~したがって 随着…。表示随着某一方面发生变化,其它方面也发生改变。
工業化が進む(すすむ)にしたがって、田んぼが減っていきました。
世界の人口の増加(ぞうか)にしたがって、食糧(しょくりょう)問題が深刻化(しんこくか)している。
植物(しょくぶつ)
Comments
Post a Comment