首页   注册   登录

necomancer

V2EX 第 155048 号会员,加入于 2016-01-12 03:48:51 +08:00
necomancer 最近回复了
2 天前
回复了 rickyleegee 创建的主题 Python 用 Python 计算 xml 表达式的值
@rickyleegee 我很久没用过 xml 那个解析器了,你可以看看 python 读 xml 的那个库。读进来 xml 然后根据节的关系算就行,或者把节转换成逆波兰表示法。
准确说应该读成:
data = [5, 10, 3, 4, -1000,999, "plus", "minus", "times","plus", "plus"]
算符顺序是 xml 节关闭的顺序,但如果某节内多过两个子节,那么算符需要每两个子节重复一次,所以最后多一个 plus
方便头戴 /屋里空调推荐 sony wh-1000xm3,项圈看 sony wi-1000x 2 代。不过感觉二代续航提升并不大,不过多了蓝牙 5.0。可以考虑 wi-1000x 1 代,现在应该价格比较低了。可惜 bose 召回那个睡眠豆了,感觉挺好的,如果出了新产品可以考虑,不过只能播白噪声;耳机的话续航目前还得看头戴。
@arrow8899 这个正解
2 天前
回复了 rickyleegee 创建的主题 Python 用 Python 计算 xml 表达式的值
calc = {'plus' : lambda x, y: x+y, 'minus':lambda x,y:x-y, 'times':lambda x,y: x*y}
data = [5, 10, "plus",3, 4, -1000,999, "plus", "minus", "times","plus"]
def eval_rp(lst):
.... stack = []
....for item in lst:
....if item not in ["plus", "minus", "times"]:
........ stack.append(item)
.... else:
........b, a = stack.pop(), stack.pop()
........res = calc[item](a, b)
........stack.append(res)
....return stack[0]

算符顺序为 xml 关闭节的顺序。注意(+ 1 2 3 4..) 这样的情况就好。
或者后缀记法,用栈。
你去搜搜波兰表达式怎么算。或者看看算法的书。应该是转成个二叉树吧。
12 天前
回复了 chaleaochexist 创建的主题 Python 同志们现在用 anaconda 环境开发的多吗?
可以考虑 miniconda,conda 管理包省一些编译。
12 天前
回复了 chaleaochexist 创建的主题 Python 同志们现在用 anaconda 环境开发的多吗?
会比较依赖 scipy ( scipy 包括 numpy pandas 一类的),sklearn 吗?如果用得多的话考虑 anaconda。
15 天前
回复了 ctlibin 创建的主题 程序员 为什么我的 sin 上网连不上了
加个 ipv6 地址吧,电信宽带和联通 LTE 的 ipv6 都还行。
等俩月自然好了。
苦逼的科研狗 T_T
18 天前
回复了 sadhen 创建的主题 数学 TeXmacs 快捷键:快速输入以 1 为分子的分式
\frac{1}{2}\left(\sqrt{5}-1\right)

学习了,点赞~
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2943 人在线   最高记录 5043   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 10ms · UTC 11:34 · PVG 19:34 · LAX 04:34 · JFK 07:34
♥ Do have faith in what you're doing.