Замените пустой список на что-нибудь символ, такой как «а» - PullRequest
0 голосов
/ 27 августа 2018

Я хотел бы заменить пустой список в Dictionary_values ​​случайным символом, таким как «a».

Мой ввод:

k = [{'1': 'man'},
{'8': []},
{'3': 'chester'},
{'5': 'united'},
{'7': 'one'},
{'0': 'man'},
{'2': 'army'},
{'4': 'my'},
{'6': 'random'},
{'9': 'example'},
{'1': 'for'},
{'8': []},
{'3': 'asking'},
{'5': 'in'},
{'7': 'stack'},
{'0': 'over'},
{'2': 'flow'},
{'4': 'expert'},
{'6': 'people'},
{'9': 'yes'}]

Мой текущий код:

for i in k:
    for u, l in i.items():
        if "[]" in l:
            l.replace("[]", "a")
            print(l)

Я пытаюсь запустить этот код, но не получаю вывод.Я хотел заменить все «[]» на «а», если это возможно.Возможно ли это реализовать?

Ответы [ 4 ]

0 голосов
/ 27 августа 2018

Вы можете попробовать это.-

k = [i if i.values() != [[]] else {i.keys()[0]:"a"} for i in k ]
print(k)

Результат -

[{'1': 'man'},
 {'8': 'a'}, 
{'3': 'chester'},
 {'5': 'united'},
 {'7': 'one'},
 {'0': 'man'}, 
{'2': 'army'},
 {'4': 'my'}, 
{'6': 'random'}, 
{'9': 'example'}, 
{'1': 'for'}, 
{'8': 'a'}, 
{'3': 'asking'}, 
{'5': 'in'}, 
{'7': 'stack'}, 
{'0': 'over'}, 
{'2': 'flow'},
{'4': 'expert'}, 
{'6': 'people'}, 
{'9': 'yes'}]
0 голосов
/ 27 августа 2018
for i in k:
    for u, l in i.items():
        if type(l) == list and not l:# Check If type is list and if its empty
            l = 'a'#just assign a instead of using replace which is used in string
            print(l)

Вы можете проверить тип объекта в виде списка вместо строки '[]'

0 голосов
/ 27 августа 2018

В вашем коде 2 ошибки.

  1. Условие if в вашем коде неверно.Вместо проверки "[]" - это string, вы должны проверить [], который является списком.
  2. Кроме того, вместо замены значения ключа, содержащего пустой список, вы добавляете пустой список.

Используйте следующий цикл, и он должен работать.

for i in k:
    for u, l in i.items():
        if l == []:
            i[u]="a"
0 голосов
/ 27 августа 2018

Вы пытались заменить тип [] на строку, в то время как вы должны были обновить значение словаря.Также вы делаете неправильную проверку условий в строке if "[]" in l:, где l - пустой список, который сравнивается со строкой "[]", которая никогда не вернет True

for i in k:
    for u, l in i.items():
        if []==l:
            i[u]='a'
            print(l)

Выход

[{'1': 'man'},
{'8': 'a'},
{'3': 'chester'},
{'5': 'Юнайтед '},
{' 7 ':' one '},
{' 0 ':' man '},
{' 2 ':' Army '},
{' 4 ': 'my'},
{'6': 'random'},
{'9': 'example'},
{'1': 'for'},
{'8 ':' a '},
{' 3 ':' ask '},
{' 5 ':' in '},
{' 7 ':' stack '},
{'0': 'over'},
{'2': 'flow'},
{'4': 'expert'},
{'6': 'people'},
{'9': 'да'}]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...