我想過濾變數串列。
我知道我需要洗掉 POA,但即使我洗掉它,也沒有輸出。
def test():
response = [{'1': 0, '2': '2A', '3': True, '4': True, 'QA': ['POAUSD','POAEUR','POAYEN','POAGBP']}]
if response == []:
return
else:
# response = str(response[0]['QA'])
# response = response.replace("POA",'')
# print(response)
filtered = []
for data in response[0]['QA']:
if data in ['USD','EUR']:
filtered.append(data)
print(data)
print(filtered)
if 'USD' in filtered and 'EUR' in filtered:
return print('USDEUR')
elif 'USD' in filtered:
return print('USD')
elif 'EUR' in filtered:
return print('EUR')
test()
uj5u.com熱心網友回復:
我認為您對“in”的作業方式有誤解:
>>> currency = "POAUSD"
>>> "USD" in currency
True
>>> "EUR" in currency
False
>>> currency_list = [currency, "POAEUR"]
>>> "USD" in currency_list
False
>>> "EUR" in currency_list
False
>>> "USD" in ["USD", "EUR"]
True
>>> "YEN" in ["USD", "EUR"]
False
>>> any("USD" in c for c in currency_list)
True
因此,如果您將一個字串與另一個字串進行比較,那么 'in' 會讓您知道第一個字串是否包含在第二個字串中。但是,如果您將字串與串列進行比較,則它必須是完全匹配的。如果它只是一個子字串,它將不會匹配該串列中的字串。如果您檢查上面的 REPL 輸入/輸出,這應該會變得清晰。最后一個條目與您特別相關 - 您在每個條目中回圈并詢問它是否是串列中每個字串的子字串。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/522490.html
標籤:Python列表过滤
