簡體   English   中英

為什么下面的兩個代碼產生不同的輸出?

[英]Why do the two codes below generate different outputs?

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

產量

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

list(...)將iterable作為參數。 b'food'bytes類型,因此list(...)根據其中的字節創建一個列表( b'f'b'o' ,...)。

使用list(...)相當於[b'food']將是:

b = list((b'food',))

因為list()將可迭代項作為參數並解壓縮。

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

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

同時, list函數將給定的可迭代對象轉換為具有其元素副本的列表。 因此,它創建了一個列表,其中包含每個'food'字母的二進制表示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM