小编use*_*366的帖子

Python:"除了KeyError"比"如果键入dict"更快?

编辑2:有人建议这是一个类似问题的副本.我不同意,因为我的问题集中在速度,而另一个问题是什么更"可读"或"更好"(没有更好地定义).虽然问题相似,但所给出的讨论/答案存在很大差异.

编辑:我从问题中意识到我可以更清楚.对不起代码拼写错误,是的,它应该使用适当的python运算符进行添加.

关于输入数据,我只选择了一个随机数列表,因为这是一个常见的样本.在我的情况下,我正在使用一个dict,我期望很多keyerrors,可能95%的密钥将不存在,并且存在的少数将包含数据集群.

无论输入数据集如何,我都对一般性讨论感兴趣,但当然有运行时间的样本很有趣.

我的标准方法就像许多其他帖子一样

list =  (100 random numbers)
d = {}
for x in list:
    if x in d:
        d[x]+=1
    else:
        d[x]=1
Run Code Online (Sandbox Code Playgroud)

但我只是想到这个更快,因为我们不必检查字典是否包含密钥.我们只是假设它确实如此,如果没有,我们会处理它.有什么区别或者Python比我聪明吗?

list =  (100 random numbers)
d = {}
for x in list:
    try:
        d[x]+=1
    except KeyError:
        d[x] = 1
Run Code Online (Sandbox Code Playgroud)

与数组中的索引,越界,负索引等相同的方法.

python performance counter dictionary keyerror

11
推荐指数
1
解决办法
2万
查看次数

pyside显示/隐藏布局

我正在尝试显示两种布局中的一种,具体取决于是否选中了复选框.

只使用小部件我可以执行以下工作正常:(此示例中的每个小部件都是QLineEdit)

myCheckbox.stateChanged.connect(switchControls)

def switchControls (self, state):
    if state == 2:
        self.widget1.show()
        self.widget2.hide()
    else:
        self.widget1.hide()
        self.widget2.show()
Run Code Online (Sandbox Code Playgroud)

但是,由于我想为每个QLineEdit添加一个描述性标签,我需要在某种布局或容器中组合QLineEdit + QLabel.我一直在尝试使用addlayout/removeLayout/removeItem在布局而不是小部件上执行上述操作,但无法使其工作.程序在我上次尝试时崩溃了.

在两种布局之间切换的最简单方法是什么?它不必使用复选框,但我更喜欢.

python layout show hide pyside

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

Python相当于Haskell的[1 ..](索引列表)

我在python中有一个元素列表.我不知道列表中的元素数量.我想在列表中添加索引.

在Haskell中,我可以做到以下几点

zip [1..] "abcdefghijklmnop"
[(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f'),(7,'g'),(8,'h'),(9,'i'),(10,'j'),(11,'k'),(12,'l'),(13,'m'),(14,'n'),(15,'o'),(16,'p')]
Run Code Online (Sandbox Code Playgroud)

现在想象一下这个字符串的大小未知.这仍然适用于Haskell,整数列表根据需要提供尽可能多的整数,直到字符串用完为止.

如何在Python中做同等效果?

我试过这个:

s = "abcdefghijklmnop"
indexedlist = []
for i,c in enumerate(s):
    indexedlist.append((i,c))

>>> indexedlist
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h'), (8, 'i'), (9, 'j'), (10, 'k'), (11, 'l'), (12, 'm'), (13, 'n'), (14, 'o'), (15, 'p')]
Run Code Online (Sandbox Code Playgroud)

它有效,但我想知道是否有更短/更清洁的方式,因为它是4行代码并且感觉很多.

python haskell loops list

7
推荐指数
2
解决办法
846
查看次数

Python lambda不记得for循环中的参数

可能重复:
使用lambda表达式中的变量值

我正在使用python并尝试隔离我使用lambda函数的问题.

从下面的代码我期望创建两个lambda函数,每个函数得到一个不同的x,输出应该是
1 2

但输出是2 2

为什么?我怎样才能创造两种不同的功能?使用def?

def main():
    d = {}
    for x in [1,2]:
        d[x] = lambda : print(x)

    d[1]()
    d[2]()


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

python lambda for-loop

6
推荐指数
3
解决办法
1434
查看次数

重载的pyside信号(QComboBox)

使用带pyside的QComboBox,我知道如何连接信号并使用它发送的索引.但是unicode论点怎么样?如果我更喜欢连接到需要组合框中的字符串的东西,那可能吗?

来自:http: //www.pyside.org/docs/pyside/PySide/QtGui/QComboBox.html#PySide.QtGui.QComboBox

所有三个信号都存在两个版本,一个带有PySide.QtCore.QString参数,另一个带有int参数.

信号

def activated (arg__1)
def activated (index)
Run Code Online (Sandbox Code Playgroud)

PySide.QtGui.QComboBox.activated(index)参数:index - PySide.QtCore.int

PySide.QtGui.QComboBox.activated(arg_ 1)参数:arg _1 - unicode

编辑:一些代码.

le = ComboBoxIpPrefix()
le.currentIndexChanged.connect(lambda x....)
Run Code Online (Sandbox Code Playgroud)

这段代码给了我索引.问题是如何获取文档中提到的unicode字符串.

signals overloading qcombobox pyside

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

从 SDL2 纹理获取像素信息

我目前正在使用 SDL2 编写一个简单的程序,您可以将一些形状(正方形、圆形、三角形等)拖到画布中,然后旋转它们并移动它们。每个形状都由从 PNG 文件创建的 SDL 纹理直观地表示(使用 SDL_image 库中的 IMG_LoadTexture 函数)。

问题是我想知道纹理中的某个像素是否透明,这样当有人单击图像时我可以确定是否必须执行某些操作(因为单击是在非透明区域上) 。因为这是一些学校作业,所以我面临一些限制,也就是说,只能使用 SDL2 库,而且我无法拥有一些地图来查找相关像素是否透明,因为图像是动态选择的。此外,我考虑使用 SDL 表面来完成此任务,从原始图像创建它们,但由于形状是通过纹理旋转的,这是行不通的。

c++ sdl-2

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

如何在 Libreoffice 中根据特定值过滤行?

我有一个有几列的表。

在此输入图像描述

target我只想要价值与价值不同的行alg。在这种情况下,target1alg0。因此,第 2、4 和 5 号线应保留,而第 3 号线应删除。怎么做?

libreoffice libreoffice-calc

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

Python列表与发生次数的差异

是否有使用python内置的列表减法/列表差异功能?我知道如何编写这样的函数,所以不需要解释.但由于这是常见的事情,我想知道是否已经内置了这样的功能.

我有两个排序列表,每个列表可能包含相同元素的多个副本.

我想知道列表之间有什么区别,考虑到出现的次数(设置差异是不够的)

例如:

l1 = [1,1,2,3,5,6]
l2 = [1,2,8,9]

diff (l1, l2) 
[1,3,5,6]

diff (l2,l1)
[8,9]
Run Code Online (Sandbox Code Playgroud)

python comparison list

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

设置除<h1> <h2>等所有文本的字体大小

我正在将CSS应用到我的页面框中,该框可能包含<div> <table> <p>其他元素,而且只是纯文本.

我希望所有文本都是相同的字体大小,标签中的文本除外 <h1> <h2> <h3>

使用objectid"mybox"我的简单CSS字体修饰符是

.mybox * {
font-size: 13px;
}
Run Code Online (Sandbox Code Playgroud)

问题是,这也为任何<h2>元素设置字体等等.我可以为我的<h2>元素添加一个类,另一个选择器再次覆盖字体大小,但感觉非常倒退.

有什么好办法照顾这个?

我找到了适用于类的not()选择器,但我找不到一个html元素,比如<h2>将它们从我的"全局"字体修饰符中排除.

html css

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