Python 是否删除重复项并扩展列表?
我在修改和打印列表时遇到了一些困难。 因此,我与一个朋友的API包含不同的玩具。从这个列表中,我想检索特定日期的玩具名称和玩具销售量。因此,我创建了一个新的列表,将所有“名称”和“售出玩具数量”添加到该列表中。然而,由于有重复的特定玩具实例具有特定的“已售出玩具数量”,我写了一个if语句,仅在玩具名称不在列表中时才附加该名称,如果该名称已在列表中,则扩展“已售出玩具数量”。问题是,当我打印完成的列表时,它会打印出所有唯一的玩具“名称”和“售出玩具的数量”,并且不会打印任何副本,这很好。但是,“玩具数量”并没有扩大。因此,尽管我试图扩展列表,但“名称”或“玩具数量”都没有扩展。我如何解决这个问题,使“玩具数量”得到扩展,而不是玩具的“名称”Python 是否删除重复项并扩展列表?,python,list,Python,List,我在修改和打印列表时遇到了一些困难。 因此,我与一个朋友的API包含不同的玩具。从这个列表中,我想检索特定日期的玩具名称和玩具销售量。因此,我创建了一个新的列表,将所有“名称”和“售出玩具数量”添加到该列表中。然而,由于有重复的特定玩具实例具有特定的“已售出玩具数量”,我写了一个if语句,仅在玩具名称不在列表中时才附加该名称,如果该名称已在列表中,则扩展“已售出玩具数量”。问题是,当我打印完成的列表时,它会打印出所有唯一的玩具“名称”和“售出玩具的数量”,并且不会打印任何副本,这很好。但是,“玩
toy_list = []
for toy in toy_sales:
try:
toy_information = parse(toy(['toy_information'])
if toy['name'] not in toy_list:
toy_list.append(toy['name'])
toy_list.append(toy['amount_of_toys'])
else:
toy_list.extend(toy['amount_of_toys'])
new_list = []
new_list.append(toy_list)
print(new_list)
我的代码有问题吗?我相信if声明可以确保玩具没有重复的“名称”,但extend似乎无法将金额添加到正确的名称中,因此根本不添加它
提前谢谢
编辑:
谢谢玩具数据的一个示例是名称,它是一个字符串,玩具数量,它是一个整数:当前的输出如下所示:
['Pokemon', 330000.0, 'Transformer', 45000.0]
['Pokemon', 330000.0, 'Transformer', 45000.0, 50000.0]
这是如果我只得到2个项目。目前,如果我不使用'not in'函数,我会得到重复的'Transformer',这意味着'Transformer'有两个实例:一个有45000个销售额,一个有50000个销售额。只有第一个出现,即45000。如果使用append而不是extend,则输出如下所示:
['Pokemon', 330000.0, 'Transformer', 45000.0]
['Pokemon', 330000.0, 'Transformer', 45000.0, 50000.0]
我想延长期限会给我:
['Pokemon', 330000.0, 'Transformer', 95000.0]
但事实并非如此。它没有扩展它,如果我附加,它只是将它们相邻相加,而不是求和
EDIT2:您好,我试图对dict执行相同的操作,但输出为空
toy_dict = {
'name': 0
}
for toy in toy_sales:
try:
toy_information = parse(toy(['toy_information'])
if toy['name'] not in toy_list:
toy_dict['name'].append(toy['name'])
toy_dict['amount_of_toys'].append(toy['amount_of_toys'])
else:
toy_dict['amount_of_toys'].update(toy['amount_of_toys'])
print(toy_dict)
你可以试试这样的。 但我建议读一篇关于python DIC的文章
toy_dict = {}
for toy in toy_sales:
try:
toy_information = parse(toy(['toy_information'])
if toy['name'] in toy_dict:
toy_dict[toy['name']] += toy['amount_of_toys']
else:
toy_dict[toy['name']] = toy['amount_of_toys']
print(toy_dict)
请提供玩具数据、预期输出和当前输出的示例
list.extend()
是一种扩展列表的列表方法:[1,2,3].extend([4,5])==[1,2,3]+[4,5]
。听起来你想做的是增加玩具的数量?我马上阻止你。您需要编辑您的帖子来添加我要求的信息,而不是将其放在评论中。抱歉,不太擅长使用stackoverflow。现在编辑我的作品!对,所以你尝试使用列表方法来求和list.append()
和list.extend()
不对数字进行操作。要添加数字,只需执行a+b
。不幸的是,您正在使用的数据结构将给您带来麻烦,因为您只是随意地存储字符串和数字,而字符串与相应的数字之间没有关联。考虑切换到<代码> DICT<代码>,再次感谢!我对dicts有点熟悉,我该怎么做呢?我会像上面的列表一样声明dict,并尝试以相同的方式附加数据吗?