我是相當新的Python和我在下面的代碼片段使用列表理解:列表理解,如果切片過去列表界爲此
while offset < len(list)
s = ['{:04x}'.format(i) for i in list[offset:offset+16]]
do stuff with s
offset += 16
的片段遍歷list
,並增加了高達 16元素以格式化的方式添加,然後將16添加到偏移值以獲取下一個16,直到看到所有元素。這在我的非簡化代碼中起作用,但是我希望在切片超出列表大小時強加一個佔位符,而不是隻停止向s
添加元素。我知道我可以用一個完整的循環來做到這一點,但是爲了保持這個簡潔到一行,我想試着去理解它。我想我需要一個if/else
的理解,但似乎無法弄清楚需要什麼條件。
你爲什麼要這麼做?這個過程背後的基本原理是什麼?請記住,「聰明」的代碼通常不如實用的代碼簡潔。 – Soviut
你能舉一個你想在這種情況下執行的動作的例子嗎? – Elisha
代碼的目的是從輸入文件創建一個數據表(我從工作副本中刪除了很多),所以佔位符值將在末尾填入空單元格,並保留所有第16行的長度。通過理解來達到這個目的只是爲了探索如何/如果可以做到。 – yanman1234