【问题标题】:Python: pull out elements of given array in certain orderPython:以特定顺序提取给定数组的元素
【发布时间】:2020-06-30 21:13:55
【问题描述】:

我有一组包含姓名、地址、城市、州和邮政编码的数组。有没有办法可以集中使用这些元素并以姓名、地址、城市、州、邮政编码的格式逐行显示信息?另外我不知道如何摆脱数组末端的空间。

这是数组:

[['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 初学者,所以请不要使用疯狂的语法!

【问题讨论】:

  • 一开始为什么会这样拆分?
  • 我创建了一个包含信息的文件,并通过收集该文件中的所有行并将它们放入此数组中来读取该文件。

标签: python arrays list formatting string-formatting


【解决方案1】:

通过以 3 步长迭代列表来创建字典列表:

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" 之后而不是:
【解决方案2】:
>>> 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 文件中,这样您就可以将相关信息组合在一起,避免事后需要zip

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多