Python:按一定顺序拉出给定数组的元素
我有一个包含姓名、地址、城市、州和邮政编码的数组。是否有一种方法可以集中使用这些元素,并以名称、地址、城市、州、邮政编码等格式逐行显示信息?我也不知道如何去掉数组末端的空间 这是阵列:Python:按一定顺序拉出给定数组的元素,python,arrays,list,formatting,string-formatting,Python,Arrays,List,Formatting,String Formatting,我有一个包含姓名、地址、城市、州和邮政编码的数组。是否有一种方法可以集中使用这些元素,并以名称、地址、城市、州、邮政编码等格式逐行显示信息?我也不知道如何去掉数组末端的空间 这是阵列: [['Alex Morales', ''], ['311 N Sangamon St', ''], ['Chicago, IL 60607', ''], ['Delfino Santana', ''], ['1 Main St', ''], ['Belvedere Tiburon, CA 94920', '']
[['Alex Morales', ''], ['311 N Sangamon St', ''], ['Chicago, IL 60607', ''],
['Delfino Santana', ''], ['1 Main St', ''], ['Belvedere Tiburon, CA 94920', ''],
['Ponce De Leon', ''], ['74 King St', ''], ['St. Augustine, FL 32084', ''],
['Coit Tower', ''], ['1 Telegraph Hill Blvd', ''], ['San Francisco, CA 94133']]
我是Python的初学者,所以请不要使用疯狂的语法
>>> for name, address, csp in zip(*(iter(i[0] for i in arr),) * 3):
... print(f"Name: {name} Address: {address} City/State/Postal: {csp}")
...
Name: Alex Morales Address: 311 N Sangamon St City/State/Postal: Chicago, IL 60607
Name: Delfino Santana Address: 1 Main St City/State/Postal: Belvedere Tiburon, CA 94920
Name: Ponce De Leon Address: 74 King St City/State/Postal: St. Augustine, FL 32084
Name: Coit Tower Address: 1 Telegraph Hill Blvd City/State/Postal: San Francisco, CA 94133
棘手的
zip
内容是必要的,因为数据的格式很棘手。最好将这些数据放入(例如)csv文件中,这样您就可以将相关信息分组在一起,避免事后需要对其进行压缩。通过以3:1的步幅重复列表来创建词典列表:
l = [['Alex Morales', ''], ['311 N Sangamon St', ''], ['Chicago, IL 60607', ''],
['Delfino Santana', ''], ['1 Main St', ''], ['Belvedere Tiburon, CA 94920', ''],
['Ponce De Leon', ''], ['74 King St', ''], ['St. Augustine, FL 32084', ''],
['Coit Tower', ''], ['1 Telegraph Hill Blvd', ''], ['San Francisco, CA 94133']]
info = [{"name": l[i][0], "street": l[i+1][0], "city": l[i+2][0]}
for i in range(0, len(l), 3)]
现在,每个词典中都有所有相关信息,您可以将其打印出来:
for x in info:
print(f"Name: {x['name']}\nAddress: {x['street']} x['city']}\n")
首先,为什么要这样拆分?我创建了一个包含信息的文件,并通过收集该文件中的所有行并将它们放入该数组来读取该文件。这正是我想要做的,谢谢!我必须补充一点,当我把它插入我的IDE时,我总是会遇到语法错误。我似乎不明白为什么。我有一个打字错误:
,在“street”
之后,而不是: