小编Kas*_*mvd的帖子

识别列表中的连续数字组

我想在列表中标识连续数字组,以便:

myfunc([2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20])
Run Code Online (Sandbox Code Playgroud)

返回:

[(2,5), (12,17), 20]
Run Code Online (Sandbox Code Playgroud)

并且想知道最好的方法是什么(特别是如果在Python中有内置的东西).

编辑:注意我原本忘了提到个别数字应该作为单独的数字返回,而不是范围.

python list range continuous

81
推荐指数
6
解决办法
4万
查看次数

在UML类图中,什么是边界类,控件类和实体类?

我现在使用NetBeans作为我的选择IDE,它有一个用于UML建模的插件.在类图,有被称为模型元素Boundary Class,Control ClassEntity Class.但是,我找不到它们的好定义,但我确实在UML Class Diagrams上找到了这个网站.

uml class-diagram

79
推荐指数
5
解决办法
16万
查看次数

有效地检查该字符串是否包含Python中的一个字符

检查sPython 中的字符串只包含一个字符的有效方法是什么'A'?像all_equal(s, 'A')这样的东西会像这样:

all_equal("AAAAA", "A") = True

all_equal("AAAAAAAAAAA", "A") = True

all_equal("AAAAAfAAAAA", "A") = False
Run Code Online (Sandbox Code Playgroud)

两种看似效率低下的方法是:首先将字符串转换为列表并检查每个元素,然后再使用正则表达式.是否有更有效的方法,或者这些是Python中最好的方法?谢谢.

python string

62
推荐指数
6
解决办法
2万
查看次数

如何在Python中使for循环金字塔更简洁?

在固体力学中,我经常使用Python并编写如下所示的代码:

for i in range(3):
    for j in range(3):
        for k in range(3):
            for l in range(3):
                # do stuff
Run Code Online (Sandbox Code Playgroud)

我经常这样做,我开始怀疑是否有更简洁的方法来做到这一点.当前代码的缺点是:如果我遵守PEP8,那么我不能超过每行79个字符的限制,并且没有太多的空间,特别是如果这又是一个类的功能.

python performance python-2.7 python-3.x

62
推荐指数
4
解决办法
3758
查看次数

Python中的__weakref__究竟是什么?

令人惊讶的是,没有明确的文档__weakref__.这里解释弱引用.__weakref__也很快在文档中提到__slots__.但我找不到任何关于__weakref__它自己的东西.

到底是__weakref__什么? - 它只是一个作为标志的成员:如果存在,该对象可能被弱引用? - 或者它是一个可以被覆盖/分配以获得所需行为的函数/变量?怎么样?

python python-3.x python-internals

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

在字符串中找到"出现两次的一个字母"

我试图捕获一个字母在一个字符串中出现两次使用RegEx(或者可能有更好的方法?),例如我的字符串是:

ugknbfddgicrmopn
Run Code Online (Sandbox Code Playgroud)

输出将是:

dd
Run Code Online (Sandbox Code Playgroud)

但是,我尝试过类似的东西:

re.findall('[a-z]{2}', 'ugknbfddgicrmopn')
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,它返回:

['ug', 'kn', 'bf', 'dd', 'gi', 'cr', 'mo', 'pn']   # the except output is `['dd']`
Run Code Online (Sandbox Code Playgroud)

我也有办法获得期望输出:

>>> l = []
>>> tmp = None
>>> for i in 'ugknbfddgicrmopn':
...     if tmp != i:
...         tmp = i
...         continue
...     l.append(i*2)
...     
... 
>>> l
['dd']
>>> 
Run Code Online (Sandbox Code Playgroud)

但那太复杂了......


如果是'abbbcppq',那么只抓住:

abbbcppq
 ^^  ^^
Run Code Online (Sandbox Code Playgroud)

所以输出是:

['bb', 'pp']
Run Code Online (Sandbox Code Playgroud)

然后,如果是的话'abbbbcppq',抓bb两次:

abbbbcppq
 ^^^^ ^^
Run Code Online (Sandbox Code Playgroud)

所以输出是:

['bb', 'bb', 'pp']
Run Code Online (Sandbox Code Playgroud)

python regex python-2.7

56
推荐指数
4
解决办法
5415
查看次数

在Python中将项目插入到排序列表中

我正在创建一个类,其中一个方法将新项插入到排序列表中.该项目将插入已排序列表中的已更正(已排序)位置.我不能使用比其他任何内置列表函数或方法[],[:],+,和len虽然.这是让我感到困惑的部分.

解决这个问题的最佳方法是什么?

python list sorted

54
推荐指数
5
解决办法
9万
查看次数

为什么这需要很长时间才能匹配?这是一个错误吗?

我需要匹配Web应用程序中的某些URL,即/123,456,789编写此正则表达式以匹配模式:

r'(\d+(,)?)+/$'
Run Code Online (Sandbox Code Playgroud)

我注意到它似乎没有评估,即使在测试模式几分钟后:

re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523')
Run Code Online (Sandbox Code Playgroud)

预期的结果是没有匹配.

但是,此表达式几乎立即执行(请注意尾部斜杠):

re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523/')
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?

python regex performance state-machine

50
推荐指数
3
解决办法
4814
查看次数

将装饰器附加到类中的所有函数

我真的不需要这样做,但只是想知道,有没有办法将装饰器绑定到类中的所有函数,而不是明确地为每个函数声明它.

我认为它然后变成了一种方面,而不是装饰者,它确实感觉有点奇怪,但是想到时间或认证这样的东西它会非常整洁.

python oop class decorator class-method

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

在列表中附加一个元组 - 两种方式之间有什么区别?

我4个月前写了我的第一个"Hello World".从那时起,我一直在学习莱斯大学提供的Coursera Python课程.我最近参与了一个涉及元组和列表的迷你项目.将元组添加到列表中有一些奇怪的事情:

a_list = []
a_list.append((1, 2))       # Succeed! Tuple (1, 2) is appended to a_list
a_list.append(tuple(3, 4))  # Error message: ValueError: expecting Array or iterable
Run Code Online (Sandbox Code Playgroud)

这对我来说很困惑.为什么使用"tuple(...)"而不是简单的"(...)"来指定要附加的元组会导致ValueError

BTW:我使用了课程中使用的CodeSkulptor 编码工具

python types tuples list append

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