我想得到一個包含變數的串列并過濾它
我成功洗掉了不必要的單詞,但是
filters = [] 在這里不起作用。列印(過濾)= []
根據過濾后的變數,我想要的是“美元”或(和)“歐元”。
追加似乎是問題...我不知道原因
而在第二個代碼中,為什么 POA 沒有被洗掉?無法從串列中洗掉特定字符?
def test():
response = [{'1': 0, '2': '2A', '3': True, '4': True, 'QA': ['NZDUSD','NZDEUR','NZDYEN','NZDGBP']}]
if response == []:
return
else:
response = str(response [0]['QA'])
response = response.replace('NZD','')
filtered = []
for data in [response]:
if data in ['USD','EUR']:
filtered.append(data)
# print(data)
print(filtered)
if 'USD' in filtered and 'EUR' in filtered:
print ('USDEUR')
elif 'USD' in filtered:
print ('USD')
elif 'EUR' in filtered:
print ('EUR')
test()
def test():
response = [{'1': 0, '2': '2A', '3': True, '4': True, 'QA': ['POAUSD','POAEUR','POAYEN','POAGBP']}]
if response == []:
return
else:
response = response [0]['QA']
for i in range(len(response)):
if response[i] == 'POA':
response[i] = ''
# print(response)
filtered = []
for data in [response]:
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熱心網友回復:
關于您的第一個代碼:回應是一個字串而不是一個串列,因此“回應資料”將產生單個字符,而不是您期望的單詞。
要使其按您的意愿作業,請修改這部分代碼:
...
else:
response = response [0]['QA']
response = [ word.replace('NZD','') for word in response]
# print("result: ",response) # testing statement
filtered = []
for data in response:
...
關于您的第二個代碼:
if response[i] == "POA":
總會失敗;您想將它和以下行(在其他解決方案中)替換為:
if response[i].startswith('POA'):
response[i] = response[i][3:] # or ... = response[i].replace('POA','')
更進一步,
for data in response:
代替
for data in [response]:
(解釋:[response] 是一個包含 response 作為其唯一值的串列,因此對于 [response] 中的資料:相當于“data = response”)
uj5u.com熱心網友回復:
如果我理解正確你想要做的是:
def test():
response = [{'1': 0, '2': '2A', '3': True, '4': True, 'QA': ['NZDUSD','NZDEUR','NZDYEN','NZDGBP']}]
if response == []:
return
else:
response = str(response [0]['QA'][0])
response = response.replace('NZD','')
filtered = []
for data in [response]:
if data in ['USD','EUR']:
filtered.append(data)
# print(data)
print(filtered)
if 'USD' in filtered and 'EUR' in filtered:
print ('USDEUR')
elif 'USD' in filtered:
print ('USD')
elif 'EUR' in filtered:
print ('EUR')
test()
輸出是:
['USD']
USD
但這是下次的提示,當您發布時,請將您的變數命名得稍微清楚一點,對每個變數都有更多的含義 - 一切都是“回應”,這不是一個反復使用的好名字(當然這是不好的做法在同一個腳本中一遍又一遍地回收變數名)但我想你明白了我的意思:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/522482.html
