在PHP
我会这样做:
$res = unpack('C*', "string");
$res
变量将是一个大小为6的数组:
Array ( [1] => 115 [2] => 116 [3] => 114 [4] => 105 [5] => 110 [6] => 103 )
我想在Python
中做同样的伎俩。我试过这个:
>>> from struct import unpack
>>> unpack("s","string")
但在这种情况下我收到一个错误:
struct.error: unpack requires a string argument of length 1
我只是想知道 - 为什么长度为1,如果" s" format代表字符串?我怎样才能实现同样的东西,比如PHP?
答案 0 :(得分:4)
这是因为struct.unpack
格式s
表示"字符串" 。默认情况下,它是一个1字符串,否则你必须指定长度,例如10s
表示10个字符串。
无论如何, Python字符串的行为类似于不可变的字符数组,因此您可以执行s[3]
并获取第4个(从零开始)的字符。如果你需要明确地将字符串分解为字典(类似于PHP关联数组),你可以这样做:
s = dict(enumerate("string"))
但我强烈建议不要这样做。