3 回答
TA贡献1794条经验 获得超7个赞
您的代码有多个问题。.首先address是一个长度为1的列表的列表。其次,如果您要检查地址是否包含邮政编码,则两个示例都可以,但是您不能将它们与其他数据分开访问,因为它现在已作为字符串存储。尝试分离元素,然后将它们实际存储为String或int。下一个问题是您无法检查不存在的元素。如果您知道必须存在其他数据,则可以检查列表的长度。总之,使用这些更改:
addresses = [['123 street name', 'New Orleans', 'LA', 12345],['New Orleans', 'LA', 12345]]
for address in addresses:
if len(address) > 3:
street = address[0]
city = address[1]
city = city.lstrip()
state = address[2]
state = state.lstrip()
zip_code = address[3]
else:
street = "-"
city = address[0]
city = city.lstrip()
state = address[1]
state = state.lstrip()
zip_code = address[2]
TA贡献1829条经验 获得超6个赞
你有基本的正确想法。我认为最大的问题是if语句中的条件,因为address[3]
只有3个元素时会引发异常。相反,您应该使用len()
. 如果列表的长度为3,则仅会得到城市,州和邮政编码,并将其压缩到正确的变量中。如果列表的长度为 4,则您将获得所有 4 个字段。
添加回答
举报