小编Ant*_*rre的帖子

来自dict.fromkeys的不需要的行为

我想使用初始化集合的字典(在Python 2.6中)dict.fromkeys,但结果结构表现奇怪.进一步来说:

>>>> x = {}.fromkeys(range(10), set([]))
>>>> x
{0: set([]), 1: set([]), 2: set([]), 3: set([]), 4: set([]), 5: set([]), 6: set([]), 7: set([]), 8: set([]), 9: set([])}
>>>> x[5].add(3)
>>>> x
{0: set([3]), 1: set([3]), 2: set([3]), 3: set([3]), 4: set([3]), 5: set([3]), 6: set([3]), 7: set([3]), 8: set([3]), 9: set([3])}
Run Code Online (Sandbox Code Playgroud)

我显然不想在所有集合中添加3,仅添加到对应的集合x[5].当然,我可以通过初始化避免问题x没有fromkeys,但我想了解我在这里失踪.

python

20
推荐指数
2
解决办法
3612
查看次数

使用matplotlib填充区域的补充

我目前正在用Python和matplotlib实现一些东西.我知道如何绘制多边形以及如何填充多边形,但如何填充多边形内部以外的所有内容?为了更清楚,我想修改下面的结果,使用axhspan's和axvspan's,通过剪切水平和垂直的红线来获得一个红色矩形(外面的所有部分都是阴影线): 在此输入图像描述

python matplotlib

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

从 Python 中的路径确定文件系统类型

Python(2.*)中是否有任何可移植的方法来获取包含给定路径的设备的文件系统类型?例如,类似:

>>> get_fs_type("/foo/bar")
'vfat'
Run Code Online (Sandbox Code Playgroud)

python filesystems

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

Networkx:如何绘制彩色边缘?

我使用以下代码构建了一个图表:

G = networkx.Graph()
G.add_edges_from([list(e) for e in P + Q + R])    
colors = "bgrcmyk"
color_map = [colors[i] for i in range(n/2)]

# add colors
for i in range(len(P)):
    edge = list(P[i])
    G[edge[0]][edge[1]]['edge_color'] = color_map[i]

for i in range(len(P)):
    edge = list(Q[perms[0][i]])
    G[edge[0]][edge[1]]["color"] = color_map[perms[0][i]]

for i in range(len(P)):
    edge = list(R[perms[1][i]])
    G[edge[0]][edge[1]]["color"] = color_map[perms[1][i]]
Run Code Online (Sandbox Code Playgroud)

然后我使用以下方式显示:

networkx.draw(G)
matplotlib.pyplot.show()
Run Code Online (Sandbox Code Playgroud)

它显示正常,但所有边缘都用黑色着色,而不是我试图在上面的代码片段中分配的颜色.有任何想法吗?

python networkx

5
推荐指数
2
解决办法
4608
查看次数

使用抽象语法树修改Python 3代码

我目前正在使用 ast 和 astor 模块来研究抽象语法树。该文档教我如何检索和漂亮打印各种函数的源代码,网络上的各种示例展示了如何通过将一行内容替换为另一行内容或将所有出现的 + 更改为 * 来修改部分代码。

但是,我想在不同的地方插入额外的代码,特别是当一个函数调用另一个函数时。例如,以下假设函数:

def some_function(param):
    if param == 0:
       return case_0(param)
    elif param < 0:
       return negative_case(param)
    return all_other_cases(param)
Run Code Online (Sandbox Code Playgroud)

会产生(一旦我们使用过astor.to_source(modified_ast)):

def some_function(param):
    if param == 0:
       print ("Hey, we're calling case_0")
       return case_0(param)
    elif param < 0:
       print ("Hey, we're calling negative_case")
       return negative_case(param)
    print ("Seems we're in the general case, calling all_other_cases")
    return all_other_cases(param)
Run Code Online (Sandbox Code Playgroud)

这对于抽象语法树来说可能吗?(注意:我知道运行代码时调用的装饰函数会产生相同的结果,但这不是我想要的;我需要实际输出修改后的代码,并插入比 print 语句更复杂的东西)。

python abstract-syntax-tree python-3.x

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

MIDI持续时间的实际音符持续时间

我正在实现一个应用程序来执行MIDI文件的一些任务,我目前的问题是将我读过的笔记输出到LilyPond文件.

我已经将note_on和note_off事件合并到具有绝对开始和绝对持续时间的单个音符对象,但我真的没有看到如何将该持续时间转换为实际的音乐符号.我已经猜到376的持续时间是我正在阅读的文件中的四分音符,因为我知道这首歌,显然188是八分音符,但这肯定不会推广到所有MIDI文件.

有任何想法吗?

midi

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

Python,几何和可视化

我正在寻找一个允许我可视化几何数据的Python库.没有什么极其复杂的,只是平面或空间中的一堆点以及我将产生的一些基本形状.

我看了一下这个问题及其答案,但那里的焦点似乎在于计算.

python geometry visualization

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

多次运行的平均运行时间

我想在运行脚本后报告脚本的平均运行时间(使用time命令计算),比如n次.是否有一个bash我不知道的简单命令,脚本或系统实用程序,这将允许我这样做?

bash

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

Python:避免分数简化

我正在研究Python中的音乐应用程序,并希望使用分数模块来处理时间签名等.我的问题是分数得到简化,即:

>>> from fractions import Fraction
>>> x = Fraction(4, 4)
>>> x
Fraction(1, 1)
Run Code Online (Sandbox Code Playgroud)

然而,从音乐的角度来看,重要的是4/4保持4/4,即使它等于1.是否有任何内置的方法来避免这种行为?

谢谢!

python fractions music-notation

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

使用字典映射元组列表

给出以下元组列表:

y = [(1, 2), (3, 5)]
Run Code Online (Sandbox Code Playgroud)

和以下字典:

d = {1: 'a', 2: 'c', 3: 'n', 4: 'y', 5: 'u'}
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法将y映射到[('a', 'c'), ('n', 'u')]

python dictionary

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