我有一个字符串,我正在尝试针对一些正则表达式模式进行验证,并且我希望由于模式匹配在 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的新手,我需要一些帮助.
任务:给出一个清单 - > 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 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:\ …
我有一个熊猫数据框,其中包含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) 我有一些随机行的图片,如下所示:
我想在它们上面应用一些预处理,以消除不必要的噪声(扭曲写入的线条),以便我可以将它们与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的初学者.
任何帮助将不胜感激,谢谢.
我收到了一台 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, …
在帖子昨天我给,我无意中发现改变__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) 我想创建 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
到目前为止,Google Colab 上的默认 python 是 Py 3.6.7。我想在 Py 3.5.3 上运行。是否可以?如果是这样,如何?
我想突出显示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)