2010-07-15 102 views
3

我想獲得一個表示字符串中字節的ints列表。如何將字符串中的字節轉換爲整數? Python

+0

的Python 2.x或3.x的? – dan04 2010-07-15 13:42:51

+0

如果您不是指ASCII值(如您在下面的評論中所寫的那樣),您的意思是什麼? – 2010-07-15 13:49:39

+0

如果你對ascii值不感興趣,你可以舉一個例子:字符串是什麼樣的? – 2010-07-15 13:50:14

回答

5

你的意思是ascii值嗎?

nums = [ord(c) for c in mystring] 

nums = [] 
for chr in mystring: 
    nums.append(ord(chr)) 
+1

爲什麼downvote? – 2010-07-15 13:47:40

+0

我不明白爲什麼這是downvoted ... – 2010-07-15 13:48:04

+0

我想知道同樣的......感謝+ 1s傢伙。 – 2010-07-15 13:49:18

7

一個選項爲Python 2.6和更高版本是使用bytearray

>>> b = bytearray('hello') 
>>> b[0] 
104 
>>> b[1] 
101 
>>> list(b) 
[104, 101, 108, 108, 111] 

對於Python 3.x的你需要一個bytes對象,而不是字符串在任何情況下,所以可以這樣做:

>>> b = b'hello' 
>>> list(b) 
[104, 101, 108, 108, 111] 
+0

爲了澄清OP,這些值*是ASCII值。 – 2010-07-15 13:50:55

2

也許你是指一串字節,例如通過網絡接收,代表幾個整數值?

在這種情況下,您可以通過使用unpack()和指定「i」作爲整數格式字符串來將字符串「解壓縮」爲整數值。

參見: http://docs.python.org/library/struct.html

+0

@Amarghosh:這就是我在這裏投注的東西:)。 不是輸入將是一個零和一個字符串,而是實際的真正的二進制數據,恰好代表一些整數。當我試圖解決Vortex0時,我學到了這一點,我懷疑這個問題海報試圖解決..(http://www.overthewire.org/wargames/vortex/level0.shtml) 道歉評論在這裏,我似乎無法評論實際問題。 (我是新來的!) – Daan 2010-07-15 14:18:33

+0

聰明的猜測,+1。到目前爲止,作者已經解釋了他真的想要什麼,但無論如何... – 2010-07-15 14:27:14

+0

你需要50名代表評論其他人的帖子 - 我只是讓你更接近10分。 – Amarghosh 2010-07-15 14:30:54

相關問題