【发布时间】:2017-06-23 09:23:20
【问题描述】:
如何根据字符串列表表示仅包含二进制数(非整数)的列表:
str_list = ['111111', '1111011', '11110011', '11111011', '111100011', '111110011']
bin_list = [111111, 1111011, 11110011, 11111011, 111100011, 111110011]
从字符串的大小和位不同的角度出发,是否意味着在两个列表中搜索相同元素的时间不同?两个列表的搜索方法是否相同?
【问题讨论】:
-
搜索方法相同,
__eq__方法不同(对于整数可能更快)。 -
我看到了整数,我是不是遗漏了什么?如果你处理浮点数,你可以将字符串转换为浮点数,并检查你从字符串中获得的准确性给出的舍入误差内的等价性。
-
我同意威廉的观点。除此之外,您的
bin_list不包含二进制数 - 它只是基数为 10 的整数,仅包含数字 0 和 1。如果要表示二进制数,请使用前缀0b -
每当我使用 0b 前缀时,python 威胁 bin_list 元素作为字符串 bin_list = [bin(0b111111), bin(0b1111011), bin(0b11110011), bin(0b11111011), bin(0b111100011), bin (0b111110011)] 打印类型(bin_list[0])
-
你应该不只使用
bin(..)bin_list = [0b11011,0b1101]...元素是ints。