Форум сайта python.su
Нужно решить такую задачу:
есть список:
lst = ["site.com","link1","link2","link3","link4","link5","link6","link7"]
data = [{"id":0,"url":"site.com"}, {"id":1,"url":"link1"}]
Отредактировано Murad (Май 24, 2017 13:24:33)
Офлайн
lst = ["site.com","link1","link2","link3","link4","link5","link6","link7"] data = [{"id": 0, "url": "site.com"}, {"id": 1, "url": "link1"}] def add_urls(urls, data): urls_dict = {} max_id = 0 for item in data: id = item['id'] urls_dict[item['url']] = id if id > max_id: max_id = id for url in urls: if url not in urls_dict: urls_dict[url] = max_id + 1 max_id += 1 return [{'id': id, 'url': url} for url, id in urls_dict.items()] print(add_urls(lst, data))
Отредактировано Stright (Май 24, 2017 13:44:43)
Офлайн
Stright
Огромное спасибо Вам Очень благодарен
Офлайн
Stright
можно еще кое что спросить?
вот есть списоки еще есть список элементы которые являются словарьlst = ["site.com","link5","link2","link4","link3","link1"]нужно заполнить еще один массив list как lst, но только чтобы он взял элемент из datadata = [{"id": 0, "url": "site.com"}, {"id": 1, "url": "link1"}, {"id": 2, "url": "link2"}, {"id": 3, "url": "link3"}, {"id": 4, "url": "link4"}, {"id": 5, "url": "link5"}, {"id": 6, "url": "link6"}, {"id": 7, "url": "link7"}]
напримерЗначение в списке lst всегда есть внутри массива data, просто надо привязять id к элементу lst из массива data.list = [ [{"id": 0, "url": "site.com"}, {"id": 1, "url": "link1"}, {"id": 2, "url": "link2"}, {"id": 3, "url": "link3"}, {"id": 4, "url": "link4"}, {"id": 5, "url": "link5"}]
Просто надо присвоить id из массива data
Офлайн
Не совсем понятно, что вы хотите сделать, у вас список list - копия списка data. Кстати, нельзя так называть переменные, потому что list - это название встроенного типа. Напишите, какие исходные данные и что должно получиться.
Отредактировано Stright (Май 24, 2017 20:44:29)
Офлайн