сравнить значения между тремя списками в Python, возвращаемое количество продублированных продуктов - PullRequest
0 голосов
/ 04 ноября 2019

Здравствуйте, я пытался решить эту проблему без успеха, я хотел бы знать, как я могу решить ее в python:

name = ['ball', 'jeans','ball']
price = [1, 4, 1]
weight = [2, 2, 2]

def productDuplicates(name, price, weight):




if __name__ == "__main__":
    productDuplicates(name, price, weight)

Я должен вернуть целое число с подсчетом количества дублирующихся продуктовсуществовать. Три списка могут содержать n элементов, но для упрощения вопроса я добавил только три, так что продукт считается дублированным, имя, цена и вес должны быть равны

Ответы [ 3 ]

0 голосов
/ 04 ноября 2019

вы можете использовать zip(), чтобы объединить свойства (в данном случае имя, цену и вес) в кортеже и удалить дубликаты, используя набор, вот ваш метод productDuplicates:

def productDuplicates(name, price, weight):
    temp_list = list()
    for each_product in zip(name,price,weight):
        temp_list.append(each_product)

    return len(temp_list) - len(set(temp_list)) #set keeps the unique elements
0 голосов
/ 04 ноября 2019

Наиболее распространенный подход, который я видел для определения количества дубликатов в списках, - это использование набора, а затем сравнение его длины с длиной списка. Это очень просто с точки зрения строк кода:

name = ['ball', 'jeans','ball']
price = [1, 4, 1]
weight = [2, 2, 2]

def productDuplicates(name, price, weight):
    l = list(zip(name, price, weight))
    return(len(l)-len(set(l)))
0 голосов
/ 04 ноября 2019

Функция ниже создает список товаров с именами, ценами и весами в виде кортежа, затем выполняет итерацию по всем товарам и добавляет дубликаты в набор, а затем возвращает длину набора.

name = ['ball', 'jeans','ball']
price = [1, 4, 1]
weight = [2, 2, 2]

def productDuplicates(name, price, weight):
  products_list = list(zip(name, price, weight))
  duplicates = set()
  for p in products_list:
    if products_list.count(p) > 1:
      duplicates.add(p)
  return len(duplicates)


if __name__ == "__main__":
    print(productDuplicates(name, price, weight))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...