2013-04-03 65 views
1

我在格式与开放街道地图数据:的Python:列表元组

</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> 

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

例如,'nd ref'输入的数量可以不同。我正在考虑将id数据存储到一个元组中,并且还在每个包含nd ref数据的元组中包含一个列表。然后最后将所有元组存储在一个列表中。请提出是否可行,我是否可以通过循环访问所有输入?

回答

2

假设的方式标识的只有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*/ 

然而元组可以包含像列表这样的可变元素。官方Python文档liststuples也可能派上用场。

+0

thnx vivek,我会试试这个方法 – tanzil