Python将字符串解压缩到数组中

Rom*_*man 2 python arrays string

我每天都在使用Ruby,但我在Python中遇到了问题.我发现这种语言非常相似...但我从Ruby迁移有一些问题:)

请帮我在python中转换这个动作:

   string = "qwerty2012"
   (var, some_var, another_var)  = string.unpack("a1a4a*")
Run Code Online (Sandbox Code Playgroud)

这应该从string返回三个带有解压缩值的变量:

   var         = "q"      # a1
   some_var    = "wert"   # a4
   another_var = "y2012"  # a*
Run Code Online (Sandbox Code Playgroud)

帮我用Python代表它谢谢!

mVC*_*Chr 9

s = "qwerty2012"
(a, b, c) = s[:1], s[1:5], s[5:]
Run Code Online (Sandbox Code Playgroud)


D.S*_*ley 5

Python确实有一个名为struct的类似模块.它缺乏抓取其余字符串的能力,就像Ruby和PHP从Perl中取出一样.你几乎可以到达那里:

>>> import struct
>>> s = 'qwerty2012'
>>> struct.unpack_from('1s4s', s)
('q', 'wert')
>>> def my_unpack(format, packed_string):
...    result = []
...    result.extend(struct.unpack_from(format, packed_string))
...    chars_gobbled = struct.calcsize(format)
...    rest = packed_string[chars_gobbled:]
...    if rest:
...        result.append(rest)
...    return result
...
>>> my_unpack('1s4s', 'qwerty2012')
['q', 'wert', 'y2012']
>>> my_unpack('1s4s', 'qwert')
['q', 'wert']
>>> [hex(x) for x in my_unpack('<I', '\xDE\xAD\xBE\xEF')]
['0xefbeadde']
Run Code Online (Sandbox Code Playgroud)

我祝愿struct模块实现Perl的其余部分unpackpack因为他们是非常有用的功能翻录除了二进制数据包,但很可惜.