Как я могу перебрать словарь Python и заменить значение подстроки? - PullRequest
0 голосов
/ 02 января 2019

Я хочу перебрать словарь с неизвестными ключами и заменить определенное значение подстроки.

mydict = {
    'Getting links from: https://www.foo.com/': 
    [
        '+-BROKEN- http://www.broken.com/',
        '+---OK--- http://www.set.com/',
        '+---OK--- http://www.one.com/'
    ],
    'Getting links from: https://www.bar.com/': 
    [
        '+-BROKEN- http://www.broken.com/'
    ]
}

val = "+-BROKEN-"

for k, v in mydict.iteritems():
   if v.contains(val):
     v.replace(val, '')

Результат, который я хочу получить:

{
    'Getting links from: https://www.foo.com/':
    [
        'http://www.broken.com/',
        '+---OK--- http://www.set.com/',
        '+---OK--- http://www.one.com/'
    ], 
    'Getting links from: https://www.bar.com/': 
    [
        'http://www.broken.com/'
    ]
}

Как мне пройти по словарю и заменить определенное значение подстроки?

Ответы [ 2 ]

0 голосов
/ 02 января 2019

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

for k, v in mydict.iteritems():
    mydict[k] = [string.replace(val,'')] for string in v]
0 голосов
/ 02 января 2019

Это не работает так, как вы ожидаете, потому что v - это список, а не одна строка. По этой причине v.contains(val) всегда равно False. Один из способов выполнить то, что вы описываете, будет:

for k, v in mydict.iteritems():
  for i, s in enumerate(v):
    if val in s:
      v[i] = s.replace(val, '')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...