為什么此代碼輸出不同?
lst = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8"]
for i in lst:
print(i[2])
print([i[2] for i in lst])
uj5u.com熱心網友回復:
首先是一個迭代,你列印每個字串的每個索引 2。第二個是串列理解,您可以在其中創建一個具有與上述相同資料的新串列并列印該串列。
第一的:
lst = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8"]
for i in lst:
print(i[2])
結果:
1
2
3
4
5
6
7
8
第二:
print([i[2] for i in lst])
結果:
['1', '2', '3', '4', '5', '6', '7', '8']
如果您希望第一個版本模仿與第二個版本相同的結果,只需創建一個串列并附加到它:
newlst = []
for i in lst:
newlst.append(i[2])
print(newlst)
結果:
['1', '2', '3', '4', '5', '6', '7', '8']
如果您想在一行中列印串列理解,例如 for 回圈,請使用:
[print(i[2]) for i in lst]
結果:
1
2
3
4
5
6
7
8
如果你需要一個型別字串來理解,你可以這樣做:
s = "\n".join([i[2] for i in lst])
print(s)
print(type(s))
結果:
1
2
3
4
5
6
7
8
<class 'str'>
uj5u.com熱心網友回復:
在第一種情況下,您正在進行多次列印。在第二種情況下,您正在構建一個包含所有資料的串列,然后列印該串列
uj5u.com熱心網友回復:
lst = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8"]
# You are iterating over the list
for i in lst:
# prints 3rd character in each element (i)
print(i[2]) # be default this statement has newline at end
# To print with spaces try print(i[2], end=' ')
# here you are doing it using list comprehension so the output will be in a list
print([i[2] for i in lst])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/426845.html
上一篇:防止音頻恢復
下一篇:最多保存的青蛙
