我有一个列表(如下),我想只提取必要的组件来代表一个地址,格式为“街道和号码,城市PIN,国家”
my_list = ['AddressLanguage="eng" ISO="IL" Country="India" City="chennai" Street="XyZ street" HouseNo="3" ZIP="16940"/>\n', 'AddressLanguage="eng" ISO="IL" Country="ISRAEL" City="Madurai" Street="cvbd ROAD " HouseNo="1" ZIP="75140"/>\n']
所需输出为[XyZ street 3, 16940 chennai, India ; cvbd ROAD 1, 75140 Madurai, ISREAL]
'my_list'也不总是采用相同的格式。有时它不会有'HouseNo'或订单可能会被更改。所以我只想提取列表中存在的街道和号码,城市密码和国家等所需组件,并将它们按上述顺序排列。
我尝试了[''.join(n for n in i if n in 'Country') for i in my_list]
但是这会从完整列表中删除字母(国家/地区)。
任何帮助都会非常感激。
PS:我是python的新手,学习python的任何建议都会非常有用。 提前谢谢。
答案 0 :(得分:1)
def getAddress(rawList):
toRet = []
for item in rawList:
item = item.remove("/>\n")
rawArr = item.split(" ")
tempDict = {}
for x in rawArr:
y = x.split("=")
y[1] = y[1:]
y[1] =y[:- 1]
tempDict[y[0]] = y[1]
addr = [tempDict["Street"], tempDict["HouseNo"], tempDict["City"], tempDict["Zip"], tempDict["Country"]]
toRet.append(' '.join(addr))
return toRet
如果您的列表符合您的指定,则需要:
将list的每个元素转换为格式为" key = value"
使用" key"从这些元素中创建一个字典。作为关键和"价值"作为价值。
从此词典中获取所需的最终地址。