![](/img/trans.png)
[英]Python: How to extract the last 3 digits of each object in my list full of integers?
[英]How to extract individual digits from a list of integers?
作為 python 的新手,這給我帶來了一些麻煩
給定一個整數列表,例如
[2, 0, 0, 0, 0, 12, 0, 8]
我如何提取每個元素的單個數字以形成一個新列表
[2,1,2,8]
我有遍歷每個元素並使用模運算符的想法,但我似乎找不到正確的邏輯
很感謝任何形式的幫助
我認為最簡單的方法是將值轉換為字符串並提取單獨的字符並將它們轉換回 integer。
例如:
lst = [2, 0, 0, 0, 0, 12, 0, 8]
digits = []
for value in lst:
if value != 0:
digits.extend(map(int, str(value)))
print(digits)
印刷:
[2, 1, 2, 8]
您可以首先將所有數字轉換為字符串列表,將每個字符串轉換為 integer,然后使用itertools.chain.from_iterable
展平結果:
>>> from itertools import chain
>>> lst = [2, 0, 0, 0, 0, 12, 0, 8]
>>> list(chain.from_iterable(map(int, str(x)) for x in lst if x != 0))
[2, 1, 2, 8]
由於 0 也是一個數字,想象一下下面的情況,如果一個數字是 10、20、30、40……那么它應該分別是 1、0、2、0、3、0……。
那么您的新列表中需要 0 嗎?
如果這個問題的答案是“否”那么這個和這個答案都失敗了。 這是一個解決方案。
myList = [10, 0, 0, 0, 0, 12, 0, 8]
newList = []
for i in myList:
while i >= 10:
newList.append(i%10)
i = i//10
newList.append(i)
newList = [ x for x in newList if x != 0 ]
該解決方案還滿足您的模邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.