2017-06-02 58 views
0

我的代碼中只有三個值x = {1, 2, 3},其中有一個變量x。當使用 sys.getsizeof()時,我得到的是24,它是以字節爲單位的對象大小。是否可以將python中的數字整數轉換爲1字節字符


問題

我想知道是否有可能在Python x轉換與1 byte尺寸爲char。我用str(x),但是sys.getsizeof(str(x))印刷38 bytes

+2

說真的,你爲什麼要這麼做?你是否試圖在具有16K內存的20世紀80年代家用計算機上運行Python?只需使用Python爲您提供的類,並停止擔心這樣的微觀優化。 –

+0

不知道你爲什麼想這樣做,但numpy似乎能夠將整數轉換爲[8位格式](https://docs.scipy.org/doc/numpy/user/basics.types.html) 。儘管我使用sys.getsizeof()測試了'np.uint8',並且它返回,我猜還有其他事情發生在 – gionni

+1

上。對象不是基礎值,值被裝箱。但是,如果您需要與低級語言的互操作性並且要傳遞字節 - 沒有問題:使用'array','struct'或'ctype'模塊。在這種情況下,指針/參考是絕對正確的(以及大小) –

回答

1

單個字節是不可能的,因爲python對象總是包含Python實現的開銷。

如果您的用例數量較多(數千或數百萬,例如圖像),則您的用例只與實際情況相關。在這種情況下,您將使用例如arraybytearray對象作爲容器。另一種方法是使用numpy陣列。

相關問題