在PYTHON列表中重新连接特定的拆分字符串

2024-10-16 17:16:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含测量单位值的列表,我想删除它们,原始列表如下:

['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']

要删除度、kts、mb等测量单位,请遵循以下方法:

    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']

从中提取数据的主要源代码:

Data origin source code

任何帮助都将不胜感激,谢谢


Tags: inforhr单位mbxa0windtemperature
1条回答
网友
1楼 · 发布于 2024-10-16 17:16:27

因此,您前面标识的源数据来自一个名为grouped的dict(请考虑是否可以将其放回并展示一个非常好的示例)

从组中,您希望将所有键作为标题,将值作为值,但替换所有不需要的符号。你知道吗

下面的代码从分组的dict开始,将头和值存储到两个单独的列表中:

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))

如果您概述了源数据的起始位置,然后是预期的输出,那么将来肯定会有所帮助。你知道吗

相关问题 更多 >