【发布时间】:2012-01-12 17:05:49
【问题描述】:
我在单元测试TestCase中有以下代码(作为示例)
def test(self):
a = array('u','\0'*3)
a[0] = 'h'
a[1] = 'h'
a[2] = 'h'
self.assertEqual(a.tostring(), "hhh")
断言失败并出现以下错误:
AssertionError: b'h\x00\x00\x00h\x00\x00\x00h\x00\x00\x00' != 'hhh'
现在我知道我创建的数组是 4 个字节长的 Unicode 字符,因此我输入的每个字符都有额外的 3 个 NUL 字节。我的问题是:
- 我可以将字符串“hhh”转换为我的断言内联的 Unicode 表示吗?
- 是否有用于创建我的数组的 ascii 选项?
编辑:回答出现的问题: 1. 我正在使用 Python 3 2. 数组来自模块数组,可以通过:from array import array 导入
【问题讨论】:
-
什么是数组? (从哪里导入?或者定义是什么?)
-
我问是因为它甚至没有运行... >>> array.array('u','\0'*3) 返回一个 Traceback。
-
嗨,对不起,您需要从数组导入数组中的行
-
奇怪,仍然没有像上面写的那样为我运行。 ValueError:字符串长度不是项目大小的倍数。 2.7.2 在这里。
-
啊,在 Python3 中工作就是问题所在。
标签: python arrays unicode python-3.x