【问题标题】:Finding and sorting string查找和排序字符串
【发布时间】:2017-04-17 16:51:46
【问题描述】:
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_list 中打印夹克字符串,类似于衬衫。我尝试使用此代码无法正常工作。

【问题讨论】:

  • 您对问题的描述不是很好。它到底是怎么回事?包括它。你究竟希望输出是什么样的?包括它。您可以随时编辑您的问题以解决这些问题。
  • 有任何答案可以纠正问题吗?

标签: python string python-3.x sorting


【解决方案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 语句中添加它:

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

【讨论】:

  • @AbhishekBhosale 没问题!
  • 嘿@Derek Baxter 如果我有数据集,如果我想在上面的代码中为 ex 找到 2 个常用关键字:“我需要黑色夹克”,“我需要黑色衬衫” 现在我想同时找到夹克和黑色,然后排序我该怎么做。我尝试使用 and 但它不起作用
  • @AbhishekBhosale 嘿,我编辑了答案并添加了额外信息,请查看
  • 嘿@Derek Baxter 感谢更新,我能够在 i.upper() 中使用 ("JACKET" and "BLACK") 正确完成这一点。` `
  • @Dexter Baxter 现在我面临的问题是,我试图对不同数据集中的多个关键字进行排序,但它没有按应有的方式发生。
猜你喜欢
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-24
  • 2021-09-26
相关资源
最近更新 更多