2017-04-17 30 views
-4
data_set = ["This is cool jacket","I have two white shirts","I need black leather jacket", "I have five half shirts"] 
shirt_list = [] 
jacket_list = [] 
def parse_data(clothes): 
for i in clothes: 
    if "Jacket" in data_set: 
    jacket_list.append(i) 
    elif "shirt" in data_set: 
    shirt_list.append(i) 
    else: 
    pass 
return shirt_list,jacket_list 
print(parse_data(data_set)) 

我需要從特定字符串中排序和收集數據,以便在代碼中使用我需要用Jacket字符串打印Jacket字符串,類似於襯衫。我試着用這個代碼不工作。查找和排序字符串

+2

你的問題的描述是不是真的好。究竟是什麼不工作?包括它。你究竟希望輸出如何?包括它。你總是可以編輯你的問題來解決這些問題。 –

+0

是否顯示任何答案來糾正問題? – Derek

回答

1

快速解決你的問題是這樣的:

data_set = ["This is cool jacket","I have two white shirts","I need black leather jacket", "I have five half shirts"] 
shirt_list = [] 
jacket_list = [] 
def parse_data(clothes): 
for i in clothes: 
    if "jacket" in i: 
    jacket_list.append(i) 
    elif "shirt" in i: 
    shirt_list.append(i) 
    else: 
    pass 
return shirt_list,jacket_list 
print(parse_data(data_set)) 

的原因是,你正試圖在總榜單看,而是看每個i

然後我會改變你的支票更通用的檢查,像這樣:

if "JACKET" in i.upper(): 
    jacket_list.append(i) 
    elif "SHIRT" in i.upper(): 
    shirt_list.append(i) 

這將有助於消除在列表中更改的機會

編輯:

如果你還需要檢查爲黑色,這是你可以做什麼:

for i in clothes: 
    if "jacket" in i: 
    if "black" in i: 
     jacket_list.append(i) 
    elif "shirt" in i: 
    if "black" in i: 
     shirt_list.append(i) 
    else: 
    pass 

所有它做的是增加一個額外的,如果裏面的語句,可能會多一點代碼,但我認爲它更易於閱讀。

如果你希望它在同一個if語句只補充一點:

if "jacket" in i and "black" in i:

+0

嘿謝謝德里克它的工作:) –

+0

@AbhishekBhosale沒問題! – Derek

+0

嘿@Derek Baxter如果我想在上面的代碼中找到2個常用關鍵字,如果我有數據集:**「我需要黑色夾克」,「我需要黑色襯衫」**,現在我想找到夾克和黑色,並排序我將如何做到這一點。我嘗試使用_and_但它不起作用 –