Преобразуйте строку внутри списка в список, удалив символ новой строки и удалив первый и последний символы в python - PullRequest
2 голосов
/ 14 июля 2020

У меня есть список , и я пытаюсь преобразовать его в словарь:

temp_list = ['ads_sm\nActive an hour ago\n3,416,227\nm_sg13\nActive a day ago\n0']

Мне нужно преобразовать его в более чистый список после удаления все символы \ n , заменив его запятой и удалив все символы 'в начале и в конце, чтобы я мог сохранить его как словарь

temp_list = [ads_sm,Active an hour ago,3,416,227,m_sg13,Active a day ago,0]

словарь должен выглядеть так:

{'ads_sm': 'Active an hour ago ', 'm_sg13': 'Active an hour ago'}

Мой код до сих пор такой, что дает мне пустой словарь :

temp_list = ['ads_sm\nActive an hour ago\n3,416,227\nm_sg13\nActive a day ago\n0']
words = [w.replace('\n', ',') for w in temp_list]
status_dictionary = dict(zip(words[::4], words[1::4]))
print(status_dictionary)

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

Будет ли это работать для вас.

temp_list = ['ads_sm\nActive an hour ago\n3,416,227\nm_sg13\nActive a day ago\n0']
sp_list = temp_list[0].split("\n")
x = zip(sp_list[0::2], sp_list[1::2])
print(dict(x))

Вывод:

{'ads_sm': 'Active an hour ago', '3,416,227': 'm_sg13', 'Active a day ago': '0'}
2 голосов
/ 14 июля 2020

Это может быть способ:

temp_list = ['ads_sm\nActive an hour ago\n3,416,227\nm_sg13\nActive a day ago\n0']
splitedlist=[val for val in temp_list[0].splitlines() if not all(i.isdigit() for i in val.replace(',',''))]
dct={k:val for k,val in zip(splitedlist[::2],splitedlist[1::2])} 
#Same as dict(zip(splitedlist[::2],splitedlist[1::2]))

Вывод

dct
{'ads_sm': 'Active an hour ago', 'm_sg13': 'Active a day ago'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...