小编beo*_*ver的帖子

python xml提取循环

我有一些脚本,我认为它几乎就在那里.我已经找到了一种粗略的编写方式,但我无法弄清楚如何使它作为for循环运行.

我从xml文件中提取数据,该文件使用以下格式:

<Trackpoint>
    <Time>2012-01-17T11:44:35Z</Time>
    <Position>
        <LatitudeDegrees>51.920211518183351</LatitudeDegrees>
        <LongitudeDegrees>26.706042898818851</LongitudeDegrees>
    </Position>
    <AltitudeMeters>-43.6026611328125</AltitudeMeters>
</Trackpoint>
<Trackpoint>
    <Time>2012-01-17T11:45:21Z</Time>
    <Position>
        <LatitudeDegrees>51.920243117958307</LatitudeDegrees>
        <LongitudeDegrees>26.706140967085958</LongitudeDegrees>
    </Position>
    <AltitudeMeters>-43.6026611328125</AltitudeMeters>
</Trackpoint>
Run Code Online (Sandbox Code Playgroud)

我可以使用以下内容来说LatitudeDegrees:

from xml.dom.minidom import parse
doc = parse('/Users/name/Documents/GPS/gps.tcx')
lat = doc.getElementsByTagName("LatitudeDegrees")
time = doc.getElementsByTagName("Time")
trackpoint = doc.getElementsByTagName("Trackpoint")

for x in lat:
    print(x.firstChild.data)
Run Code Online (Sandbox Code Playgroud)

但我想按顺序获得Lat,Long和时间.

我猜我需要用

for x in trackpoint 
Run Code Online (Sandbox Code Playgroud)

但我能弄清楚如何做到这一点的唯一方法如下.

count = 0
n = len(trackpoint)
while count < n:
    print(time[count].firstChild.data)
    print(lat[count].firstChild.data)
    print(lon[count].firstChild.data)
    count += 1
Run Code Online (Sandbox Code Playgroud)

有人有主意吗?我想我只是错过了一些非常简单的事情!

python xml for-loop

1
推荐指数
1
解决办法
1478
查看次数

打开json字符串,以便在ruby中轻松读取和写入

我有一个json文件.我用它来存储信息,因此它不断地被读取和写入.

我对ruby和oop一般都是新手,所以我确信我会以疯狂的方式解决这个问题.

class Load
    def initialize(save_name)
    puts "loading " + save_name
        @data = JSON.parse(IO.read( $user_library + save_name ))
        @subject = @data["subject"]
        @id = @data["id"]
        @save_name = @data["save_name"]
        @listA = @data["listA"] # is an array containing dictionaries
        @listB = @data["listB"] # is an array containing dictionaries

    end
    attr_reader :data, :subject, :id, :save_name, :listA, :listB
end

example = Load.new("test.json")
puts example.id

=> 937489327389749
Run Code Online (Sandbox Code Playgroud)

所以我现在可以轻松读取json文件,但是如何写回文件 - 参考示例?说我想改变ID example.id.change(7129371289)...或者将字典添加到列表A和B ......这可能吗?

-------------更新--------------

我有它的工作,但我相信它会冒犯别人...所以我把它包括在下面.

class Load
    def initialize(save_name)
    puts "debug printed from inside 'Load'"
    puts …
Run Code Online (Sandbox Code Playgroud)

ruby json writing object

1
推荐指数
1
解决办法
6017
查看次数

erlang地图功能

我是Erlang的新手,所以请原谅我的天真.

我正在尝试重写我用其他语言编写的函数.其中一个是jaccard位索引.

在python haskell和clojure它将工作如下:

xs = [1,1,0,0,1,1,0,0,1,1,0,0]
ys = [1,0,1,0,1,0,1,0,1,0,1,0]

# python 3.X
def jaccard_bit_index(A,B):
    i = sum(map(operator.mul ,A,B)) 
    return  i / (sum(A) + sum(B) - i)

-- haskell
jaccrd_bit_index a b =
    count / ((sum a) + (sum b) - count)
    where
      count = sum $ zipWith (*) a b

%% clojure
(defn jaccard-bit-index [a b]
  (let [binarycount (apply + (map * a b))]
    (/ binarycount
       (- (+ (apply + a) (apply + b))
          binarycount))))
Run Code Online (Sandbox Code Playgroud)

我想我的问题是我只知道Erlang的

map(Fun, List1) -> …

erlang map arity

1
推荐指数
1
解决办法
496
查看次数

intellij Mac将SDK主目录设置为/ usr

使用“ Intellij IDEA 14.1.2我正在尝试设置Erlang SDK主页路径”,我要做的唯一选择是不让我查看/usr/local文件的文件浏览器。也就是说,我没有选择键入所需路径的选项。我被迫使用Apple gui文件浏览器(不显示/bin/usr

File -> Project Structure -> SDK's

我做了一个符号链接,但是我真的不想要杂散链接。

ln -s /usr/local/path/to/erlang ~/erlang

我可以“键入”类路径和源路径,但不能“键入”主要的“ Erlang SDK主页路径”:

有任何想法吗?

erlang sdk path intellij-idea

1
推荐指数
1
解决办法
1018
查看次数

将Scheme闭包定义函数转换为Haskell

以下程序,用Scheme编写,

(define (eat xs)
  (lambda (x)
    (if (eq? x 'vomit)
      (reverse xs)
      (eat (cons x xs)))))
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式调用:

> eat 
#{procedure 9165 eat}
> (eat '())
#{procedure 9166 (unnamed in eat)}
> ((eat '()) 1)
#{procedure 9166 (unnamed in eat)}
> (((((eat '()) 1) 2) 3) 4)
#{procedure 9166 (unnamed in eat)}
> ((((((eat '()) 1) 2) 3) 4) 'vomit)
(1 2 3 4) 
Run Code Online (Sandbox Code Playgroud)

因为没有突变,例如.set!,并且使用递归传递状态我认为在Haskell中编写这将是微不足道的:

eat xs x = if x == "vomit" then reverse xs else eat (x:xs) …
Run Code Online (Sandbox Code Playgroud)

recursion scheme closures haskell types

1
推荐指数
1
解决办法
175
查看次数

emacs cider 清除 REPL 缓冲区

user>我只是想清除 repl 缓冲区,以便在第一行留下一个提示符,例如 ( )。

我有一个键绑定:

(put 'erase-buffer 'disabled nil)
(global-set-key (kbd "C-x C-<backspace>") 'erase-buffer)
Run Code Online (Sandbox Code Playgroud)

但这给出了这样的信息:

文本是只读的

有这个选项C-c C-o,但这只会清除最后一个返回值。

使用 python 时,我认为run-python以下命令是C-x M-ocomint-clear-buffer

emacs cider

1
推荐指数
1
解决办法
1699
查看次数

标签 统计

erlang ×2

arity ×1

cider ×1

closures ×1

emacs ×1

for-loop ×1

haskell ×1

intellij-idea ×1

json ×1

map ×1

object ×1

path ×1

python ×1

recursion ×1

ruby ×1

scheme ×1

sdk ×1

types ×1

writing ×1

xml ×1