【问题标题】:Python: list in tuplePython:元组中的列表
【发布时间】:2013-04-03 09:46:29
【问题描述】:

我有来自开放街道地图的数据,格式为:

</way>
<way id="148531879">
    <nd ref="1616241466"/>
    <nd ref="1616241469"/>
    <nd ref="1616241471"/>
    <nd ref="1616241472"/>
    <nd ref="1616241475"/>
    <nd ref="1616241479"/>
    <nd ref="276928691"/>
    <tag k="highway" v="secondary"/>
    <tag k="lit" v="no"/>
    <tag k="oneway" v="yes"/>
    <tag k="ref" v="L 292"/>
</way>
<way id="10870759">
    <nd ref="96594201"/>
    <nd ref="96594205"/>
    <nd ref="96594209"/>
    <nd ref="96594224"/>
    <tag k="highway" v="residential"/>
    <tag k="maxspeed" v="50"/>
    <tag k="name" v="Rockwellstraße"/>
    <tag k="oneway" v="yes"/>
    <tag k="postal_code" v="38518"/>
</way>
<way id="10522831">
    <nd ref="90664716"/>
    <nd ref="940615687"/>
    <nd ref="2222543788"/>
    <nd ref="940619729"/>
    <nd ref="90664692"/>
    <nd ref="939024170"/>
    <nd ref="298997463"/>
    <tag k="highway" v="residential"/>
    <tag k="name" v="Am Allerkanal"/>
    <tag k="postal_code" v="38518"/>
    <tag k="tracktype" v="grade2"/>
</way>

单个文件包含 1000 个类似的方式 ID。我想将这些方式 id 存储在列表/元组中,但问题是方式 id 中的内容不固定。

例如,“nd ref”条目的数量可以不同。我正在考虑将方式id数据存储到一个元组中,并且在每个包含nd ref数据的元组中也包含一个列表。然后最后将所有元组存储在一个列表中。请问是否可行,是否可以通过循环访问所有的enteries?

【问题讨论】:

    标签: python list python-2.7 tuples


    【解决方案1】:

    假设方式 id 只有 2 种标签,在这种情况下,如果您想以数据结构组织输出,将方式 id 及其内容存储在列表中,您可以执行以下操作:

    对于每一种方式的id,你可以定义一个元组的形式

     t = (way_id,[list of nd ref tags],[list of tag k values])
    

    因此,您将为每种方式 id 提供一个元组,并且您可以随时将这些元组附加到一个列表中。使用元组的想法更好,因为数据组织得更好,你可以很容易地引用元组的内容:

    t[0] -> gives you the way-id
    t[1] -> gives you the list of nd-ref values for that id and so on.
    

    元组是不可变的数据结构,从某种意义上说,一旦你定义了一个元组(假设它的名字是't')。您不能更改元组的内容,例如:

    t[0] = 34983948 /*Invalid*/
    

    但是元组可以包含可变元素,例如列表。 liststuples 上的官方 python 文档也可能派上用场。

    【讨论】:

    • thnx vivek,我会尝试这种方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多