为什么下面的两个代码产生不同的输出?

时间:2017-10-16 05:05:27

标签: python

a = [b'food']
b= list(b'food')

输出

a = [b'food']; b = [102, 111, 111, 100]

3 个答案:

答案 0 :(得分:3)

list(...)将iterable作为参数。 b'food'的类型为bytes, 因此list(...)会根据其中的字节创建一个列表(b'f'b'o',...)。

使用[b'food']的{​​{1}}相当于:

list(...)

答案 1 :(得分:0)

因为list()将可迭代项目作为参数并解压缩。

list("123") => ["1", "2", "3"]

答案 2 :(得分:0)

第一个创建一个包含一个元素(b'food')的列表。

同时,list函数会将给定的可迭代对象转换为包含其元素副本的列表。因此,它创建一个列表,其中包含'food'每个字母的二进制表示。