если в списке нет пары ключ-значение, пропустите эти данные, используя python - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть список данных, который содержит данные ключей и значений, но иногда он содержит только данные.Я хочу пропустить этот тип данных.

Я получил следующую ошибку: -

Пример: -

formatted_desc_split = ['Akshay Godase is from pune', 'Amar:Satara', 'Sandesh:Solapur', 'Mahesh:Nagpur', 'Prashant:Indapur']

for each_split_data in formatted_desc_split:
    split_by_colon = each_split_data.split(":")
Error :-
IndexError: list index out of range

Я хочу пропустить Akshay Godase is from puneданные.если в списке нет пары ключ-значение, то я хочу пропустить эти данные.Я не могу разделить эти данные, потому что в первом индексе нет ключевых значений paire.

Как я могу решить вышеуказанную проблему?

Ответы [ 3 ]

0 голосов
/ 26 февраля 2019

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

formatted_desc_split = ['Akshay Godase is from pune', 'Amar:Satara', 'Sandesh:Solapur', 'Mahesh:Nagpur', 'Prashant:Indapur']

my_dict = {}

for each_split_data in formatted_desc_split:
    split_by_colon = each_split_data.split(":")
    if len(split_by_colon) == 2:
        my_dict[split_by_colon[0]] = split_by_colon[1]
    print(my_dict)
0 голосов
/ 26 февраля 2019

Используйте списочные понимания.Краткий, читаемый, питонический:

>>> strings = ['Akshay Godase is from pune', 'Amar:Satara', 'Sandesh:Solapur', 'Mahesh:Nagpur', 'Prashant:Indapur']
>>> [s for s in strings if ':' in s]
['Amar:Satara', 'Sandesh:Solapur', 'Mahesh:Nagpur', 'Prashant:Indapur']
0 голосов
/ 26 февраля 2019

Вместо этого используйте следующее:

formatted_desc_split = ['Akshay Godase is from pune', 'Amar:Satara', 'Sandesh:Solapur', 'Mahesh:Nagpur', 'Prashant:Indapur']

for each_split_data in formatted_desc_split:
    if ":" not in each_split_data:
        ...
...