2010-07-15 158 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

相关问题