我正在解决以下问题:
一家超市想要奖励每天的最佳顾客,并在超市的屏幕上显示顾客的姓名。为此,客户的购买金额存储在一个列表中,而客户名称存储在另一个列表中。实现一个函数nameOfBestCustomer(sales,客户),该函数返回销售额最大的客户的名称。编写一个程序,提示收银员输入所有价格和名称,将它们添加到两个列表中,调用您实现的方法并显示结果。将价格0用作哨兵。
我有以下代码可以正常工作,不同的是它不能说明多个客户,而相同的购买金额是最大值。关于如何轻松解决此问题的任何建议?我显然是Python新手,因此也欢迎您提出其他建议!谢谢!
sales = []
customers = []
def customerSales() :
salesEntry = 0.01
customersEntry = 0
while salesEntry > 0 :
salesEntry = float(input("Enter new purchase amount or a 0 to finish: "))
if salesEntry > 0 :
sales.append(salesEntry)
customersEntry = input("Enter customer name: ")
customers.append (customersEntry)
customerSales()
def nameOfBestCustomer(sales, customers) :
#@param: sales and customers lists
#@return: none
bestCustomer = ""
salesMax = 0
salesMax = max(sales)
index = sales.index(salesMax)
bestCustomer = customers[index]
print("The best customer of the day was " + bestCustomer + ".")
print("They spent $%.2f" % salesMax + ".")
nameOfBestCustomer(sales, customers)
答案 0 :(得分:2)
现在,您正在使用library(tidyverse)
my_data <- my_data %>% mutate(data_mod=map2(data,number,cbind))
来获得销售额最高的第一个客户。听起来您想让所有争取最大销售量的客户并拢。有几种方法可以做到这一点,但是列表理解尤其是pythonic:
array_filter
然后,要回头客,您可以使用另一种列表理解:
strpos
您可以阅读有关列表理解here的更多信息。注意,第二个示例不是“列表”,但是它使用相同的理解语法来创建生成器。我将其输入到python <?php
$a = ['benclinton','clintonharry','harryben','benwill','jasonsmith','smithclinton'];
$a2 = ['ben','clinton','harry'];
$res = array_filter($a,function($str="") use($a2){
$r =array_filter($a2,function($a2str) use($str){
return strpos($str,$a2str) !== FALSE;
});
return count($r) > 1;
});
print_r($res);
?>
中,以确保它返回不同的客户。
答案 1 :(得分:0)
找到maxSale之后,您可以开始循环以查找所有最大销售额和客户。另外,您需要将bestCustomers列为清单。希望这会有所帮助。
170
答案 2 :(得分:0)
如果您的结果具有多个相同的最大值,则可以将List
函数更改为此:
public class MyServiceRequest
{
public List<string> PARAM { get; set; }
}