提取列表中所需的部分 - PYTHON

时间:2016-02-10 08:56:53

标签: python-3.x

我有一个列表(如下),我想只提取必要的组件来代表一个地址,格式为“街道和号码,城市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的任何建议都会非常有用。 提前谢谢。

1 个答案:

答案 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

如果您的列表符合您的指定,则需要:

  1. 将list的每个元素转换为格式为" key = value"

  2. 的字符串数组
  3. 使用" key"从这些元素中创建一个字典。作为关键和"价值"作为价值。

  4. 从此词典中获取所需的最终地址。