Уведомления

Группа в Telegram: @pythonsu

#1 Май 24, 2017 11:44:53

Murad
Зарегистрирован: 2017-05-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

списки и словари Помогите пожалуйста(

Нужно решить такую задачу:
есть список:

 lst = ["site.com","link1","link2","link3","link4","link5","link6","link7"]
еще есть список значением которого являеться словарь
 data = [{"id":0,"url":"site.com"},
            {"id":1,"url":"link1"}]

нужно написать функцию которая берет значение из lst и проверяет есть ли он в массиве data(т.е в значении url),если есть то пропускаем, а если нет то добавляем значение lst в массив data с новым ключом
Я много раз пробовал не получаеться((. Помогите пожалуйста

Отредактировано Murad (Май 24, 2017 13:24:33)

Офлайн

#2 Май 24, 2017 13:30:12

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

списки и словари Помогите пожалуйста(

 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)

Офлайн

#3 Май 24, 2017 13:43:13

Murad
Зарегистрирован: 2017-05-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

списки и словари Помогите пожалуйста(

Stright
Огромное спасибо Вам Очень благодарен

Офлайн

#4 Май 24, 2017 16:56:10

Murad
Зарегистрирован: 2017-05-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

списки и словари Помогите пожалуйста(

Stright
можно еще кое что спросить?
вот есть список
 lst = ["site.com","link5","link2","link4","link3","link1"]
и еще есть список элементы которые являются словарь
 data = [{"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"}]
нужно заполнить еще один массив list как 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"}]
Значение в списке lst всегда есть внутри массива data, просто надо привязять id к элементу lst из массива data.
Просто надо присвоить id из массива data

Офлайн

#5 Май 24, 2017 20:40:09

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

списки и словари Помогите пожалуйста(

Не совсем понятно, что вы хотите сделать, у вас список list - копия списка data. Кстати, нельзя так называть переменные, потому что list - это название встроенного типа. Напишите, какие исходные данные и что должно получиться.

Отредактировано Stright (Май 24, 2017 20:44:29)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version