簡體   English   中英

如何從整數列表中刪除所有字符串元素,字符串旁邊是整數 [Python]

[英]How to remove all string elements from a list of integers, with strings next to integers [Python]

我有一個清單:

['6.26%', '5.94%', '7.47%', '6.90%', '5.99%', '7.94%', '8.75%', 
 '9.01%', '10.07%', '5.51%', '4.87%', '5.88%', '4.26%', '2.97%', 
 '6.38%', '4.93%', '3.96%', '4.62%', '3.73%', '5.15%', '0.86%', 
 '2.68%', '4.01%', '4.89%', '5.84%', '5.23%', '5.57%', '5.53%', 
 '2.39%', '1.00%', '2.44%', '4.65%', '3.66%', '4.60%', '4.54%', 
 '2.30%', '-1.51%', '2.36%', '3.13%', '3.12%', '1.28%', '3.55%', 
 '3.48%', '1.13%', '3.45%']

並且我想從列表中刪除所有 ' 和 % 以給我一個包含整數的列表,我可以用它來添加到另一個列表中。 我已經看到並查看了許多關於列表的問題,但似乎沒有一個適用於我的場景。 請幫忙!

只需使用列表理解

values_list = ['6.26%', '5.94%', '7.47%', '6.90%', '5.99%', '7.94%', 
'8.75%', '9.01%', '10.07%', '5.51%', '4.87%', '5.88%', '4.26%', 
'2.97%', '6.38%', '4.93%', '3.96%', '4.62%', '3.73%', '5.15%', 
'0.86%', '2.68%', '4.01%', '4.89%', '5.84%', '5.23%', '5.57%', 
'5.53%', '2.39%', '1.00%', '2.44%', '4.65%', '3.66%', '4.60%', 
'4.54%', '2.30%', '-1.51%', '2.36%', '3.13%', '3.12%', '1.28%', 
'3.55%', '3.48%', '1.13%', '3.45%']

float_list = [float(value.strip('%')) for value in values_list]

這導致:

[6.26, 5.94, 7.47, 6.9, 5.99, 7.94, 8.75, 9.01, 10.07, 5.51, 4.87, 
 5.88, 4.26, 2.97, 6.38, 4.93, 3.96, 4.62, 3.73, 5.15, 0.86,
 2.68, 4.01, 4.89, 5.84, 5.23, 5.57, 5.53, 2.39, 1.0, 2.44, 4.65, 
 3.66, 4.6, 4.54, 2.3, -1.51, 2.36, 3.13, 3.12, 1.28, 3.55, 
 3.48, 1.13, 3.45]

一種簡單的方法(但效率更低)。 使用 for 循環從字符串中刪除每個 %。 然后您可以將它們轉換為浮點數。 例如:

l = ['6.26%', '5.94%',  '7.47%', '6.90%', '5.99%', '7.94%', '8.75%', 
'9.01%', '10.07%', '5.51%', '4.87%', '5.88%', '4.26%', '2.97%', 
'6.38%', '4.93%',  '3.96%', '4.62%', '3.73%', '5.15%', '0.86%', 
'2.68%', '4.01%',  '4.89%', '5.84%', '5.23%', '5.57%', '5.53%', 
'2.39%', '1.00%',  '2.44%', '4.65%', '3.66%', '4.60%', '4.54%', 
'2.30%', '-1.51%', '2.36%', '3.13%', '3.12%', '1.28%', '3.55%', 
'3.48%', '1.13%',  '3.45%']
new = []
for item in l:
    new.append(float(l[:-1]))
l = new

新現在等於你的通緝名單

編輯: int() 函數實際上應該是 float()。 這將導致字符串不會丟失其十進制值。

暫無
暫無

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

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