如何使用python在列表中的特定单词处拆分

如何使用python在列表中的特定单词处拆分,python,list,Python,List,这是我的名单 ['Query Date :September 07, 2017', 'Address :Aguila arizona', 'Latitude :33.9428069', 'Longitude :-113.1740805',

这是我的名单

['Query Date                                :September 07, 2017',
 'Address                                    :Aguila arizona',
 'Latitude                                :33.9428069', 'Longitude                                :-113.1740805',
 'Elevation                                :2170.4 Feet',
 'Elevation Limitation:  ASCE 7* Ground Snow **LoadElevation** 3,000 feet: Ground Snow Load is0 ',
 'Elevation > 3,000 and 4,500 feet: Ground Snow Load is5 ',
 'Elevation > 4,500 and 5,400 feet: Ground Snow Load is10 ',
 '']
我想拆分列表中第5个元素的特定单词(即LoadElevation)。所以加载后,它应该被拆分

输出应类似于

['Query Date                                :September 07, 2017',
 'Address                                    :Aguila arizona', 'Latitude                                :33.9428069',
 'Longitude                                :-113.1740805', 'Elevation                                :2170.4 Feet',
 'Elevation Limitation:  ASCE 7* Ground Snow **Load',
 'Elevation** 3,000 feet: Ground Snow Load is0 ', 
 'Elevation > 3,000 and 4,500 feet: Ground Snow Load is5 ',
 'Elevation > 4,500 and 5,400 feet: Ground Snow Load is10 ', 
 '']
伙计们帮帮我。提前感谢。

如果“拆分元素”只出现一次,请获取其索引,切片到该索引,插入所需内容,然后添加列表的其余部分

>>> a = [1, 2, 'SplitHere', 3, 4]
>>> idx = a.index('SplitHere')
>>> a[:idx] + ['Split', 'Here'] + a[idx+1:]
[1, 2, 'Split', 'Here', 3, 4]

我硬编码了分割,因为您没有给出分割目标单词所依据的任何规则或标准。

使用
re.findall()
函数的简短解决方案:

import re
l = ['Query Date                                :September 07, 2017', 'Address                                    :Aguila arizona', 'Latitude                                :33.9428069', 'Longitude                                :-113.1740805', 'Elevation                                :2170.4 Feet', 'Elevation Limitation:  ASCE 7* Ground Snow LoadElevation 3,000 feet: Ground Snow Load is0 ', 'Elevation > 3,000 and 4,500 feet: Ground Snow Load is5 ', 'Elevation > 4,500 and 5,400 feet: Ground Snow Load is10 ', '']
l[5:6] = re.findall(r'.*\Load|Elevation.*', l[5])

print(l)
输出:

['Query Date                                :September 07, 2017', 'Address                                    :Aguila arizona', 'Latitude                                :33.9428069', 'Longitude                                :-113.1740805', 'Elevation                                :2170.4 Feet', 'Elevation Limitation:  ASCE 7* Ground Snow Load', 'Elevation 3,000 feet: Ground Snow Load is0 ', 'Elevation > 3,000 and 4,500 feet: Ground Snow Load is5 ', 'Elevation > 4,500 and 5,400 feet: Ground Snow Load is10 ', '']

对于泛型,您可以尝试以下代码:

import re
for index,line in enumerate(list1):
     if("LoadElevation" in line):
             newList = re.split("LoadElevation",line)
             new_index = index
             list1 = list1[:index]+ [ele + "Load" if index1%2==0 else "Elevation"+ele for index1,ele in enumerate(newList)] + list1[index+1:]

print list1 #['Query Date                                :September 07, 2017', 'Address                                    :Aguila arizona', 'Latitude                                :33.9428069', 'Longitude                                :-113.1740805', 'Elevation                                :2170.4 Feet', 'Elevation Limitation:  ASCE 7* Ground Snow **Load', 'Elevation** 3,000 feet: Ground Snow Load is0 ', 'Elevation > 3,000 and 4,500 feet: Ground Snow Load is5 ', 'Elevation > 4,500 and 5,400 feet: Ground Snow Load is10 ', '']

我在任何地方都看不到
LoadElevation
。。。我的眼睛是在捉弄我,还是你的问题不清楚?请构造一个可读的例子,我们不需要看到你复杂的实际数据。@cᴏʟᴅsᴘᴇᴇᴅ 请看我标记的粗体列表。你能用适合普通电脑屏幕的较短列表替换这些列表吗?如果您必须向右滚动400个字符,那么就很难找到输入和输出之间的差异。您还可以修改列表:
a[idx:idx+1]=['Split','Here']
[“查询日期:2017年9月7日”,“地址:亚利桑那州阿吉拉”,“纬度:33.9428069”,“经度:-113.1740805”,“海拔:2170.4英尺”,“海拔>3000和4500英尺:地面雪荷载is5',''海拔>4500和5400英尺:地面雪荷载为10','']当我尝试将此作为输入时,它不起作用。请帮助me@ppriyanka,但您的新输入不包含拆分关键字
**LoadElevation**
。这很明显。您的意思是什么?@RomanPerekhrest**因为她做了加粗处理,您可能需要将其从重新模式中删除。@ppriyanka,Nirmi说的是真的吗?基本上基于提升n英尺,它应与高程限值进行比较,并取相应的内容。最后,输出应为['01/09/17','Aguila,Arizona','33.9428069','113.1740805','21704','ASCE 7*地面雪荷载,'0']。是否有人可以根据海拔英尺进行帮助?它应与海拔极限值进行比较,并获取相应的内容。最后,输出应为['01/09/17','Aguila,Arizona','33.9428069','-113.1740805','21704','ASCE 7*地面雪荷载,'0']。是否有人可以帮助您解决此问题?您可能需要根据您的新评论添加新问题。现在,最终输出已更改。是,但请尝试在此处提供帮助。从您的输出中,0来自何处?列表的最后一个元素?打印[ele.split(“:”)[1]用于列表1中的ele,如果ele中的“:”)你可以试试这个,我将部分工作,因为我没有得到你最后两个数据的条件。。