小编Pat*_*ner的帖子

使用正则表达式进行结构模式匹配

我有一个字符串,我正在尝试针对一些正则表达式模式进行验证,并且我希望由于模式匹配在 3.10 中可用,我可能能够使用它而不是创建 if-else 块。

考虑一个字符串“validateString”,其可能值为 1021102、1.25.32、string021。

我尝试的代码如下所示。

match validateString:
    case regex1:
        print('Matched regex1')
    case regex2:
        print('Matched regex2')
    case regex3:
        print('Matched regex3')
Run Code Online (Sandbox Code Playgroud)

对于正则表达式 1、2 和 3,我尝试过字符串正则表达式模式以及 re.compile 对象,但它似乎不起作用。

我一直在尝试在互联网上找到这方面的示例,但似乎找不到任何涵盖正则表达式模式匹配与新的 python 模式匹配的示例。

关于如何让它发挥作用有什么想法吗?

谢谢!

python regex python-3.10 structural-pattern-matching

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

在python中:迭代列表中的每个字符串

我是python的新手,我需要一些帮助.

任务:给出一个清单 - > words = ['aba', 'xyz', 'xgx', 'dssd', 'sdjh']

我需要比较列表中每个字符串的第一个和最后一个元素,如果字符串中的第一个和最后一个元素相同,则递增计数.

给出的列表是:

words = ['aba', 'xyz', 'xgx', 'dssd', 'sdjh']
Run Code Online (Sandbox Code Playgroud)

如果我手动尝试,我可以迭代列表中字符串的每个元素.

words = ['aba', 'xyz', 'xgx', 'dssd', 'sdjh']
w1 = words[0]
print w1
aba

for i in w1:
   print i

a
b
a

if w1[0] == w1[len(w1) - 1]:
   c += 1
   print c

1
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试迭代列表中所有字符串的所有元素时,使用FOR循环.

我收到一个错误.

words = ['aba', 'xyz', 'xgx', 'dssd', 'sdjh']
c = 0
for i in words:
     w1 = words[i]
     if w1[0] == w1[len(w1) - 1]: …
Run Code Online (Sandbox Code Playgroud)

python string list

18
推荐指数
1
解决办法
12万
查看次数

numpy已与Anaconda一起安装,但出现ImportError(DLL加载失败:找不到指定的模块)

我在Python 3.7中使用Anaconda发行版。在安装的软件包中,我有numpy,pandas等。在PyCharm IDE中,我已将Project Interpreter设置为通过Anaconda安装的python.exe的路径:C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ python.exe

但是,当我尝试运行简单的python脚本时:

import numpy as np
print(np.pi)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

ImportError:导入多数组numpy扩展模块失败。您极有可能尝试导入失败的numpy构建。如果您使用的是numpy git repo,请尝试git clean -xdf(删除不受版本控制的所有文件)。否则,请重新安装numpy。

原始错误是:DLL加载失败:找不到指定的模块。

请参阅下面的完整错误消息:


追溯(最近一次通话):文件“ C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numpy \ core__init __。py”,位于第16行。import multiarray ImportError:DLL加载失败:找不到指定的模块。

在处理上述异常期间,发生了另一个异常:

追溯(最近一次通话):文件“ C:/Users/my_user_name/Documents/TestMyApps/simpletest.py”,第1行,在导入numpy中作为np文件“ C:\ Users \ my_user_name \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numpy__init __。py“,第142行,位于。从numpy.lib的第13行,导入add_newdocs文件“ C:\ …

python numpy pycharm python-3.x

14
推荐指数
5
解决办法
9770
查看次数

如何从熊猫的时间序列数据中获得斜率?

我有一个熊猫数据框,其中包含date一些类似下面的值

原始数据:

list = [('2018-10-29', 6.1925), ('2018-10-29', 6.195), ('2018-10-29', 1.95833333333333), 
        ('2018-10-29', 1.785), ('2018-10-29', 3.05), ('2018-10-29', 1.30666666666667), 
        ('2018-10-29', 1.6325), ('2018-10-30', 1.765), ('2018-10-30', 1.265), 
        ('2018-10-30', 2.1125), ('2018-10-30', 2.16714285714286), ('2018-10-30', 1.485), 
        ('2018-10-30', 1.72), ('2018-10-30', 2.754), ('2018-10-30', 1.79666666666667), 
        ('2018-10-30', 1.27833333333333), ('2018-10-30', 3.48), ('2018-10-30', 6.19), 
        ('2018-10-30', 6.235), ('2018-10-30', 6.11857142857143), ('2018-10-30', 6.088), 
        ('2018-10-30', 4.3), ('2018-10-30', 7.80666666666667), 
        ('2018-10-30', 7.78333333333333), ('2018-10-30', 10.9766666666667), 
        ('2018-10-30', 2.19), ('2018-10-30', 1.88)]
Run Code Online (Sandbox Code Playgroud)

加载到pandas后

df = pd.DataFrame(list)


             0          1
0   2018-10-29   6.192500
1   2018-10-29   6.195000
2   2018-10-29   1.958333
3   2018-10-29   1.785000
4   2018-10-29 …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pandas

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

从图像中删除嘈杂的线条

我有一些随机行的图片,如下所示:
在此输入图像描述
我想在它们上面应用一些预处理,以消除不必要的噪声(扭曲写入的线条),以便我可以将它们与OCR(Tesseract)一起使用.
我想到的想法是使用扩张来消除噪音,然后使用侵蚀来修复第二步中缺失的部分.
为此,我使用了这段代码:

import cv2
import numpy as np

img = cv2.imread('linee.png', cv2.IMREAD_GRAYSCALE)
kernel = np.ones((5, 5), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)
img = cv2.erode(img, kernel, iterations=1)
cv2.imwrite('delatedtest.png', img)
Run Code Online (Sandbox Code Playgroud)

不幸的是,扩张效果不佳,噪声线仍然存在.

在此输入图像描述
我尝试改变内核形状,但情况变得更糟:写入被部分或完全删除.
我还找到了一个答案,说可以删除这些行

将具有两个或更少相邻黑色像素的所有黑色像素转换为白色.

这对我来说似乎有点复杂,因为我是计算机视觉和opencv的初学者.
任何帮助将不胜感激,谢谢.

python opencv image-processing noise-reduction

9
推荐指数
2
解决办法
1331
查看次数

鸡蛋碎片的 Pip 安装问题导致软件包的未知安装

我收到了一台 MacBook Pro,需要确保我们的一些 Python 2.7 脚本在该笔记本电脑上运行,并在 Windows 机器上顺利运行。

MacBook 很旧,2008,OS X 10.11.6

我在这台笔记本电脑上使用 pip install 安装某些软件包时遇到问题,我在这里寻求帮助作为最后的手段。首先,Python 2.7.10 已安装并顺利运行。Pip install 也适用,但不适用于所有软件包。首先,我安装了 python-vlc 包:

pip install python-vlc --user
Run Code Online (Sandbox Code Playgroud)

完成无误。然后我运行我们的脚本,它使用 import vlc 导入包

python script.py
Run Code Online (Sandbox Code Playgroud)

造成

回溯(最近通话最后一个):文件“script.py”,第30行,在进口VLC文件“/Users/admin/Library/Python/2.7/lib/python/site-packages/vlc/初始化的.py”,行4、在 from vlc.helper import tell File "/Users/admin/Library/Python/2.7/lib/python/site-packages/vlc/helper.py", line 4, in import applescript File "/Users/admin/ Library/Python/2.7/lib/python/site-packages/applescript/ init .py", line 3, in import only ImportError: No module named only

似乎我只需要安装软件包:

pip install only --user
Run Code Online (Sandbox Code Playgroud)

这导致

仅收集安装收集的包:仅例外:回溯(最近一次调用最后一次):文件“/Library/Python/2.7/site-packages/pip/_internal/cli/base_command.py”,第 143 行,主状态 = self。运行(选项,参数)文件“/Library/Python/2.7/site-packages/pip/_internal/commands/install.py”,第 366 行,运行中 use_user_site=options.use_user_site,文件“/Library/Python/2.7/站点包/pip/_internal/req/ init.py", line 49, …

python macos pip python-2.7

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

pickle:它如何腌制一个函数?

帖子昨天我给,我无意中发现改变__qualname__功能的对意想不到的效果pickle。通过运行更多的测试,我发现在腌制一个函数时,pickle并没有像我想象的那样工作,并且改变__qualname__函数的 对pickle行为方式有实际影响。

下面的片段是我运行的测试,

import pickle
from sys import modules

# a simple function to pickle 
def hahaha(): return 1

print('hahaha',hahaha,'\n')

# change the __qualname__ of function hahaha
hahaha.__qualname__ = 'sdfsdf'
print('set hahaha __qualname__ to sdfsdf',hahaha,'\n')

# make a copy of hahaha
setattr(modules['__main__'],'abcabc',hahaha)
print('create abcabc which is just hahaha',abcabc,'\n')

try:
    pickle.dumps(hahaha)
except Exception as e:
    print('pickle hahaha')
    print(e,'\n')

try:
    pickle.dumps(abcabc)
except Exception as e:
    print('pickle abcabc, a copy of …
Run Code Online (Sandbox Code Playgroud)

python pickle python-3.x

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

如何使用列表中的值作为 pydantic 验证器?

我想创建 pydantic 模型来验证用户表单。我的模型值之一应该从名称列表中验证。我成功地使用枚举创建模型如下:

from enum import Enum
class Fruit(str, Enum):
    APPLE = 'apple'
    BANANA = 'banana'
    MELON = 'melon'

from pydantic import BaseModel
class UserForm(BaseModel):
    fruit: Fruit
    name: str
Run Code Online (Sandbox Code Playgroud)

现在我想将枚举切换到我的代码中的值列表:

fruit = ['apple','banana','melon']
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

tnx

python enums list pydantic fastapi

8
推荐指数
4
解决办法
1923
查看次数

Google Colab - 选择特定的 Python 版本

到目前为止,Google Colab 上的默认 python 是 Py 3.6.7。我想在 Py 3.5.3 上运行。是否可以?如果是这样,如何?

python python-3.x google-colaboratory

7
推荐指数
0
解决办法
3万
查看次数

用altair填充2行之间

我想突出显示Altair中2条线之间的区域。 结果:线条填充

我试图查看解决方案是否正在使用,mark_area()但找不到如何指定数据下限。

我的数据(几行):

index   created     pct_pl_transit  pct_pl_transit_max
0   1970-01-01 00:00:00     49.627697   60.056873
2   1970-01-01 01:00:00     43.800967   55.301460
4   1970-01-01 02:00:00     41.440480   49.757740
6   1970-01-01 03:00:00     37.879753   40.352226
8   1970-01-01 04:00:00     36.691287   19.429075
Run Code Online (Sandbox Code Playgroud)

我的图表:

base=alt.Chart(lien_traf_gest_traf_lapi).encode(x=alt.X('created', axis=alt.Axis(title='Heure', format='%Hh%M')))
line_pct_pl_lapi=base.mark_line(color='blue').encode(y=alt.Y('pct_pl_transit:Q', axis=alt.Axis(title='Nombre de PL SIREDO')))
line_pct_max=base.mark_line().encode(y='pct_pl_transit_max')
line_pct_max+line_pct_pl_lapi
Run Code Online (Sandbox Code Playgroud)

python altair

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