所以我在嘗試洗掉串列中的數字的某些字串值時遇到了問題:
["December 31, 2020", "10.00%", "$50", "1,452", "7", "testing", "(1)", "(1000)"]
我怎樣才能讓串列只顯示:["December 31,2020", "testing"]?我確實嘗試了幾個內置的 python 函式,但不知道如何獲得我想要的串列。
代碼:
number_list = ["December 31, 2020", "10.00%", "$50", "1,452", "7", "testing", "(1)", "(1000)"]
new_list = []
garbage_list = []
for i in number_list:
if i.isdigit():
garbage_list.append(i)
else:
new_list.append(i)
print(new_list)
輸出:["December 31, 2020", "10.00%", "$50", "1,452", "testing", "(1)", "(1000)"]
uj5u.com熱心網友回復:
如果您的唯一目標是保留這兩個元素,您可以執行以下操作:
import string
number_list = ["December 31, 2020", "10.00%", "$50", "1,452", "7", "testing", "(1)", "(1000)"]
new_list = []
garbage_list = []
for elem in number_list:
new_list.append(elem) if set(elem.lower()) & set(string.ascii_lowercase) else garbage_list.append(elem)
print(new_list)
關鍵思想是我在&小寫字符集和我們在迭代中到達的元素之間使用運算子(交集)。如果集合是非空的,那么這意味著有一個字符,我們希望將它保留在我們的新集合中。
請注意, string.ascii_lowercase 只是 string abcde...xyz。
輸出:
['December 31, 2020', 'testing']
uj5u.com熱心網友回復:
如果您能說出您可能希望或可能不想保留的number_values日期/時間(以其他格式)、貨幣(其他格式,如)等保存的所有型別的值,那就更好了。500 won
我可以看到您希望首先保留日期格式和字串,并排除其他所有內容,可以這樣做:
number_list = ["December 31, 2020", "10.00%", "$50", "1,452", "7", "testing", "(1)", "(1000)"]
new_list = []
garbage_list = []
for i in number_list:
// only check for first or second character for digits
if i[0].isdigit() or i[1].isdigit():
garbage_list.append(i)
else:
new_list.append(i)
print(new_list)
輸出:
['December 31, 2020', 'testing']
更多資訊將需要一個強大的解決方案。
uj5u.com熱心網友回復:
import re
number_list = ["December 31, 2020", "10.00%", "$50", "1,452", "7", "testing", "(1)", "(1000)"]
cleaned_number_list = [(i,re.sub("[^\w\s\.]", "", i)) for i in number_list] # remove special characters except (dot)
# output: [('December 31, 2020', 'December 31 2020'), ('10.00%', '10.00'), ('$50', '50'), ('1,452', '1452'), ('7', '7'), ('testing', 'testing'), ('(1)', '1'), ('(1000)', '1000')]
non_number_list = [i[0] for i in a if not re.match("\d \.?\d*", i[1])]
print(non_number_list)
# output: ['December 31, 2020', 'testing']
如果您可以指定您接受的字串格式以及您想要的確切結果會更好。這看起來有點模糊,但要解決您的具體問題,這應該可行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/429465.html
上一篇:基于多個條件的價值置換
