Присоединиться к конкретным разделенным строкам в списке PYTHON - PullRequest
0 голосов
/ 20 октября 2018

У меня есть список, содержащий значения с единицей измерения, и я хочу удалить их, оригинальный список упоминается ниже:

['Dawn:', 'Sunrise:', 'Moonrise:', 'Dusk:', 'Sunset:\xa0', 'Moonset:', 'Daylight:', 'Length:', 'Phase:', 'Temperature', 'Dew\xa0Point ', 'Windchill', 'Humidity', 'Heat Index', 'Apparent Temperature', 'Solar Radiation', 'Evapotranspiration Today', 'Rainfall\xa0Today', 'Rainfall\xa0Rate', 'Rainfall\xa0This\xa0Month', 'Rainfall\xa0This\xa0Year', 'Rainfall\xa0Last Hour', 'Last rainfall', 'Wind\xa0Speed\xa0(gust)', 'Wind\xa0Speed\xa0(avg)', 'Wind Bearing', 'Beaufort\xa0F1', 'Barometer\xa0', 'Rising slowly']
['07:30', '08:04', '17:03', '19:05', '18:31', '01:45', '11:35', '10:27', 'Waxing Gibbous', '13.7\xa0°C', '11.4\xa0°C', '13.7\xa0°C', '86%', '13.7\xa0°C', '13.0\xa0°C', '0\xa0W/m²', '0.15\xa0mm', '0.0\xa0mm', '0.0\xa0mm/hr', '36.4\xa0mm', '36.4\xa0mm', '0.0\xa0mm', '2018-10-14 08:52', '6.1\xa0kts', '2.6\xa0kts', '229° SW', 'Light air', '1026.89\xa0mb', '0.27\xa0mb/hr']

Чтобы удалить единицы измерения, такие как градусы, кц, мб и т. Д. Я следуюследующий подход:

    newlist = [word for line in test for word in line.split()]
    #print(newlist)
    testlist = ['°C', 'W/m²', 'mm','mm/hr', 'mb','kts', 'mb/hr', '%']
    t = [x for x in newlist for d in testlist if d in x]

    s = [r for r in newlist if r not in testlist]

После этого кода я могу удалить все единицы, но затем значения, которые являются строками и разделены пробелами, как Waxing Gibbous , разделены запятыми.возможно ли объединить их с пробелами?

Результат кода:

['Dawn:', 'Sunrise:', 'Moonrise:', 'Dusk:', 'Sunset:\xa0', 'Moonset:', 'Daylight:', 'Length:', 'Phase:', 'Temperature', 'Dew\xa0Point ', 'Windchill', 'Humidity', 'Heat Index', 'Apparent Temperature', 'Solar Radiation', 'Evapotranspiration Today', 'Rainfall\xa0Today', 'Rainfall\xa0Rate', 'Rainfall\xa0This\xa0Month', 'Rainfall\xa0This\xa0Year', 'Rainfall\xa0Last Hour', 'Last rainfall', 'Wind\xa0Speed\xa0(gust)', 'Wind\xa0Speed\xa0(avg)', 'Wind Bearing', 'Beaufort\xa0F1', 'Barometer\xa0', 'Rising slowly']
['07:30', '08:04', '17:03', '19:05', '18:31', '01:45', '11:35', '10:27', 'Waxing', 'Gibbous', '13.7', '11.4', '13.7', '86%', '13.7', '13.0', '0', '0.15', '0.0', '0.0', '36.4', '36.4', '0.0', '2018-10-14', '08:52', '5.2', '2.4', '188°', 'S', 'Light', 'air', '1026.21', '0.23']

Основной исходный код, из которого производится выборка данных:

Источник данныхИсходный код

Любая помощь будет оценена, спасибо

1 Ответ

0 голосов
/ 20 октября 2018

Итак, ваши исходные данные, определенные ранее, взяты из сговора, называемого сгруппированным (подумайте, можете ли вы вставить это обратно и показать хороший пример)

Из группы вы хотите получить все ключи в качестве заголовков изначения в качестве значений, но заменяющие все символы, которые вам не нужны.

Приведенный ниже код делает это для вас, начиная с вашего сгруппированного слова, и сохраняет ваш заголовок и значение в 2 отдельных списках:

headers = []
values = []
testlist = ['°C', 'W/m²', 'mm','mm/hr', 'mb','kts', 'mb/hr']

for i in a[0]:
    for k,v in i.items():
        headers.append(k)
        values.append(v)

for idx,v in enumerate(values):
    for t in testlist:
        values[idx] = values[idx].replace(t,'')

for h,v in zip(headers,values):
    print('Header: {} , Value : {}'.format(h,v))

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

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