我需要在Python中编写一个需要2个参数的函数:列表和字符串。该函数必须返回列表中存在的那些产品的列表。 这是一个例子:
products = ['Chocolat', 'peanutbutter','sugar', 'Chocolatcream']
result = myfunction(products, 'chocolate')
- >它应该是['Chocolat', 'Chocolatecream']
...等等。重要的是,小写和大写并不重要!
这是我的代码,我写的......:
def myfunction(products, product):
list = products
trueorfalse =[ product.lower() in x for x in [element.lower() for element in list]]
eempty = []
for i in trueorfalse:
if trueorfalse[i] == True:
eempty.append(products[i])
++i
return eempty
products = ['Csokolade', 'MogyoroVAJ', 'valami', 'ize', 'kutyakaja', 'vajaskenyer']
res=myfunction(products,'VAJ')
print(res)
我希望结果['MogyoroVAJ', 'vajaskenyer']
,但我得到了['MogyoroVAJ', 'MogyoroVAJ']
我不知道如何解决它,我尝试了很多不同的解决方案,但每次都有某种不同的问题。
提前谢谢!
答案 0 :(得分:1)
def myfunction(products, product):
emptylist = []
for items in products:
if product.lower() in items.lower():
emptylist.append(items)
return emptylist
products = ['Csokolade', 'MogyoroVAJ', 'valami', 'ize', 'kutyakaja', 'vajaskenyer']
res = myfunction(products,'VAJ')
print(res)
但是,请记住:
products = ['Chocolat', 'peanutbutter','sugar', 'Chocolatcream']
result = myfunction(products, 'chocolate')
可能无效。 你需要一个确切的子串。
products = ['Chocolat', 'peanutbutter','sugar', 'Chocolatcream']
result = myfunction(products, 'chocolat')
将返回正确的列表。
你可以这样做:
def myfunction(products, product):
product = product[0:len(product)-1]
print(product)
emptylist = []
for items in products:
if product.lower() in items.lower():
emptylist.append(items)
return emptylist
products = ['Chocolat', 'peanutbutter','sugar', 'Chocolatcream']
result = myfunction(products, 'chocolate')
print(result)
但请记住。这将搜索匹配字符串中除字符串中最后一个字母之外的所有字符。这可能导致res = myfunction(products,'VAJ')
中的潜在问题,因为该函数将查找子串va
的出现。因此,字面上任何包含va
的字符串都会被无意中返回。致电
['MogyoroVAJ', 'valami', 'vajaskenyer']
products = ['Csokolade', 'MogyoroVAJ', 'valami', 'ize', 'kutyakaja', 'vajaskenyer']
result = myfunction(products, 'VAJ') using the above modified code.
答案 1 :(得分:0)
列表理解可用于执行此操作,如下所示:
def myfunction(products, search):
return [product for product in products if search.lower() in product.lower()]
products = ['Chocolat', 'peanutbutter', 'sugar', 'Chocolatcream']
print myfunction(products, 'chocolat')
products = ['Csokolade', 'MogyoroVAJ', 'valami', 'ize', 'kutyakaja', 'vajaskenyer']
print myfunction(products,'VAJ')
这会显示:
['Chocolat', 'Chocolatcream']
['MogyoroVAJ', 'vajaskenyer']