我希望有一个3项组合,如标签,名称和值列表(数组)什么是存储此类事物的最佳数据结构.
目前我正在使用字典,但它只允许2个项目,但易于遍历使用
for k, v in dict.iteritems():
Run Code Online (Sandbox Code Playgroud)
我们可以有类似的东西:
for k, v, x in tuple.iteritems():
Run Code Online (Sandbox Code Playgroud) 我想转换一个整数(int或long)一个big-endian字节字符串.字节串必须是可变长度的,因此只使用最小字节数(前面数据的总长度是已知的,因此可以推断出可变长度).
我目前的解决方案是
import bitstring
bitstring.BitString(hex=hex(456)).tobytes()
Run Code Online (Sandbox Code Playgroud)
这显然取决于机器的字节顺序并给出错误的结果,因为0位是追加而没有前置.
有没有人知道如何做到这一点,而不做任何关于一个长度或结束的假设int?
我有一个UUID,我正在考虑使用UUID.int打包到一个结构中,它将其转换为128位整数.但是没有一个struct format字符足以存储它,如何去做呢?
示例代码:
s = struct.Struct('L')
unique_id = uuid.uuid4()
tuple = (unique_id.int)
packed = s.pack(*tuple)
Run Code Online (Sandbox Code Playgroud)
问题是,结构格式'L'只有4个字节...我需要存储16.将它存储为32字符串有点多.
我有这样的定义
def bar(self, foo=None, bar=None, baz=None):
pass
Run Code Online (Sandbox Code Playgroud)
我想确保最多通过foo,bar,baz中的一个.我可以
if foo and bar:
raise Ex()
if foo and baz:
raise Ex()
....
Run Code Online (Sandbox Code Playgroud)
但是有一些更简单的东西.
我正在为一个兼有a *args和**kwargs参数的函数编写单元测试.此函数的合理用例是在*argsargment 之后使用关键字参数,即表单
def f(a, *b, **c):
print a, b, c
f(1, *(2, 3, 4), keyword=13)
Run Code Online (Sandbox Code Playgroud)
现在这只在Python 2.6中变得合法 ; 在早期版本中,上面的行是语法错误,因此甚至不会编译为字节码.
我的问题是: 我如何测试较新的Python版本中提供的功能,并且仍然可以为较旧的Python版本运行测试?
我应该指出,函数本身适用于早期的Python版本,只有一些调用是Python 2.6之前的语法错误.我看过检查Python版本的各种方法不适用于此,因为它没有超过编译阶段.
如果可能的话,我宁愿不必将测试分成多个文件.
我不知道这是否是3.1中的错误,但是如果我没记错,"inline"除法在3k之前的版本中就像这样:
Python 3.1 (r31:73574, Jun 26 2009, 20:21:35) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> class A:
... def __init__(self, x):
... self.x = x
... def __idiv__(self, y):
... self.x /= y
...
>>> a = A(5)
>>> a /= 2
Run Code Online (Sandbox Code Playgroud)
但是,3.1给了我这个:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /=: 'A' and 'int'
Run Code Online (Sandbox Code Playgroud)
......或者我错过了什么?
如何让pygame在Windows XP下使用Python 2.7?我想我需要编译它,但我不确定.
谢谢.
python ×7
byte ×1
endianness ×1
integer ×1
pack ×1
pygame ×1
python-2.7 ×1
python-3.x ×1
struct ×1
tuples ×1
unit-testing ×1
uuid ×1
windows-xp ×1