Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否删除重复项并扩展列表?_Python_List - Fatal编程技术网

Python 是否删除重复项并扩展列表?

Python 是否删除重复项并扩展列表?,python,list,Python,List,我在修改和打印列表时遇到了一些困难。 因此,我与一个朋友的API包含不同的玩具。从这个列表中,我想检索特定日期的玩具名称和玩具销售量。因此,我创建了一个新的列表,将所有“名称”和“售出玩具数量”添加到该列表中。然而,由于有重复的特定玩具实例具有特定的“已售出玩具数量”,我写了一个if语句,仅在玩具名称不在列表中时才附加该名称,如果该名称已在列表中,则扩展“已售出玩具数量”。问题是,当我打印完成的列表时,它会打印出所有唯一的玩具“名称”和“售出玩具的数量”,并且不会打印任何副本,这很好。但是,“玩

我在修改和打印列表时遇到了一些困难。 因此,我与一个朋友的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,并尝试以相同的方式附加数据吗?