现在我正在尝试编写一个带有数组和整数n的函数,并给出每个大小为n的组合的列表(所以是int数组的列表).我能够使用n个嵌套循环编写它,但这仅适用于特定大小的子集.我无法弄清楚如何推广它适用于任何大小的组合.我想我需要使用递归?
这是3个元素的所有组合的代码,我需要一个适用于任意数量元素的算法.
import java.util.List;
import java.util.ArrayList;
public class combinatorics{
public static void main(String[] args) {
List<int[]> list = new ArrayList<int[]>();
int[] arr = {1,2,3,4,5};
combinations3(arr,list);
listToString(list);
}
static void combinations3(int[] arr, List<int[]> list){
for(int i = 0; i<arr.length-2; i++)
for(int j = i+1; j<arr.length-1; j++)
for(int k = j+1; k<arr.length; k++)
list.add(new int[]{arr[i],arr[j],arr[k]});
}
private static void listToString(List<int[]> list){
for(int i = 0; i<list.size(); i++){ //iterate through list
for(int j : list.get(i)){ //iterate through array
System.out.printf("%d ",j);
}
System.out.print("\n");
} …
Run Code Online (Sandbox Code Playgroud) 我有以下 Pydantic 模型:
class Report(BaseModel):
id: int
name: str
grade: float = None
proportion: float = None
@validator('*', pre=True)
def blank_strings(cls, v):
print(v)
if v == "":
return None
return v
Run Code Online (Sandbox Code Playgroud)
我的目标是能够将空字符串视为空值,但它似乎不起作用。
Report(id=5,name="Steve",grade=0.5)
创建一个实例,其中proportion=None
but...
Report(id=5,name="Steve",grade=0.5,proportion="")
抛出 error value is not a valid float (type=type_error.float)
。我怎样才能得到与第一种情况相同的结果?
我正在尝试用 PyAudio 做一个声音处理项目,但有时我会收到这个错误,我不明白为什么。
以下代码播放在我的笔记本电脑麦克风上听到的音频,然后暂停 3 秒钟,然后继续。这段代码运行良好,如果我鼓掌,在暂停期间,暂停结束后音频不会播放,这使得缓冲区填满后任何额外的音频都丢失了。
但是如果我将 CHUNK 减少到 20 这样的低数字,一旦它暂停一秒钟就会抛出错误
File "C:\Anaconda3\lib\site-packages\pyaudio.py", line 608, in read
return pa.read_stream(self._stream, num_frames, exception_on_overflow)
OSError: [Errno -9981] Input overflowed
Run Code Online (Sandbox Code Playgroud)
因此,如果音频在暂停期间由于(我认为)缓冲区填满而不会引发错误而丢失,那么当我减少每个缓冲区的帧数时为什么会出现错误?
代码:
import pyaudio
import time
# initialize stream parameters
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
output=True,
frames_per_buffer=CHUNK)
x = 1
while True:
data = stream.read(CHUNK)
stream.write(data)
x=x%100 + 1
if x == 100:
print(time.time())
time.sleep(3)
Run Code Online (Sandbox Code Playgroud)
编辑 - 我想我通过将此参数添加到读取中解决了这个问题: …
我正在制作一个包,这个包中的模块在if __name__=='__main__':
块中包含用于测试目的的代码。但是我尝试在这些模块中使用相对导入会导致错误。
我已经阅读了这个帖子和其他十亿人: 第 10 亿次的相对进口
在将其标记为重复之前,如果我想做的事情在 Python3 中是不可能的,那么我的问题是为什么它可以在 Python2 中工作,以及是什么促使决定在 Python3 中如此麻烦?
这是我的示例 Python 项目:
mypackage
- module1.py
- module2.py
- __init__.py
Run Code Online (Sandbox Code Playgroud)
__init__.py
并且module2.py
是空的
module1.py
包含:
import module2
# module1 contents
if __name__=="__main__":
# Some test cases for the contents of this module
pass
Run Code Online (Sandbox Code Playgroud)
这在 Python2 中工作正常。我可以从我计算机上任何位置的其他项目导入 module1,我也可以直接运行 module1 并if
运行块中的代码。
但是,这种结构在 Python3 中不起作用。如果我尝试在其他地方导入模块,它会失败:
>>> from mypackage import module1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\_MyFiles\Programming\Python Modules\mypackage\module1.py", line …
Run Code Online (Sandbox Code Playgroud) python relative-path python-import python-3.x python-packaging
我正在尝试将时间序列数据分割成带标签的段,如下所示:
import pandas as pd
import numpy as np
# Create example DataFrame of stock values
df = pd.DataFrame({
'ticker':np.repeat( ['aapl','goog','yhoo','msft'], 25 ),
'date':np.tile( pd.date_range('1/1/2011', periods=25, freq='D'), 4 ),
'price':(np.random.randn(100).cumsum() + 10) })
# Cut the date into sections
today = df['date'].max()
bin_edges = [pd.Timestamp.min, today - pd.Timedelta('14 days'), today - pd.Timedelta('7 days'), pd.Timestamp.max]
df['Time Group'] = pd.cut(df['date'], bins=bin_edges, labels=['history', 'previous week', 'this week'])
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误,尽管bin_edges
似乎确实是单调增加的。
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3267, in run_code
exec(code_obj, self.user_global_ns, …
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
class Note:
def __init__(self, note=None, duration=None, start_time=None):
self.note = note
self.duration = duration
self.start_time = start_time
Run Code Online (Sandbox Code Playgroud)
我想根据NumPy文档字符串样式为该类生成文档字符串,但它不会自动完成。我在下面的设置中选择了NumPy格式File | Settings | Tools | Python Integrated Tools
自动完成适用于def __init__()
。当我在其后开始新行并键入时,'''
将自动插入以下内容:
'''
Parameters
----------
note :
duration :
start_time :
'''
Run Code Online (Sandbox Code Playgroud)
但是,当我在下面执行相同的操作时,class Note:
它不会执行该操作。我正在使用PyCharm 2017.3.3
如何修改下面的代码,使图跨所有6个x轴值,并且在df2的条形的A,C,F处只有空白点?
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({'x':['A','B','C','D','E','F'],'y1':np.random.rand(6)})
df2 = pd.DataFrame({'x':['B','D','E'],'y2':np.random.rand(3)})
fig,axes = plt.subplots(2, sharex='all')
sns.barplot(x='x',y='y1',data=df,ax=axes[0])
sns.barplot(x='x',y='y2',data=df2,ax=axes[1])
Run Code Online (Sandbox Code Playgroud)
我正在尝试解决这个错误:
必须在创建 QCoreApplication 实例之前导入 QtWebEngineWidgets。
这是不言自明的,但我试图制作一个在 iPython 中使用的 GUI,它可以在创建 QApplication 实例后导入。
如何解决此错误并创建一个 PyQt5 GUI,该 GUI 可以显示 HTML 页面,并且即使在用户使用 QApplication 实例(例如通过 matplotlib)后也能够导入?
我尝试了这个但仍然得到相同的错误:
from PyQt5 import QtWidgets
import seaborn as sns
sns.boxplot([1],[1])
QtWidgets.QApplication.instance().quit()
from PyQt5 import QtWidgets, QtWebEngineWidgets
Run Code Online (Sandbox Code Playgroud) 我想使用绝对导入来导入相对于根src
目录的任何文件。这是我的文件夹结构:
example/\n\xe2\x94\xa3 public/\n\xe2\x94\x83 \xe2\x94\xa3 index.html\n\xe2\x94\xa3 src/\n\xe2\x94\x83 \xe2\x94\xa3 components/\n\xe2\x94\x83 \xe2\x94\xa3 \xe2\x94\xa3 App.css\n\xe2\x94\x83 \xe2\x94\xa3 \xe2\x94\xa3 App.js\n\xe2\x94\x83 \xe2\x94\xa3 \xe2\x94\x97 Todo.js\n\xe2\x94\x83 \xe2\x94\xa3 api.js\n\xe2\x94\x83 \xe2\x94\xa3 history.js\n\xe2\x94\x83 \xe2\x94\x97 index.js\n\xe2\x94\xa3 craco.config.js\n\xe2\x94\xa3 jsconfig.json\n
Run Code Online (Sandbox Code Playgroud)\n\n这是我的配置
\n\nvar path = require("path");\nmodule.exports = {\n resolve: {\n alias: {\n src: path.resolve(__dirname, "src"),\n },\n },\n};\n
Run Code Online (Sandbox Code Playgroud)\n\nimport Todo from "src/components/Todo"
但我收到这个错误。
\n\nModule not found: Can\'t resolve \'src/components/Todo\' in \'C:\\_MyFiles\\Programming\\example\\src\\components\'
但是,如果我更改配置并导入以引用 src 下的子文件夹,这样它就可以工作......
\n\nvar path = require("path");\nmodule.exports = {\n resolve: {\n alias: {\n components: path.resolve(__dirname, …
Run Code Online (Sandbox Code Playgroud) 我有一个create-react-app
Web 应用程序部署到生产环境,启用了源映射并将错误记录到控制台。我想调试下面显示的错误,但它给了我缩小的 JS 文件的堆栈跟踪。
如何将堆栈跟踪映射到我的原始代码?它似乎已经部分地做到了这一点,因为将鼠标悬停xhr.js:30
在右上角链接到node_modules
来自 的一些代码axios
,但其余链接到缩小的文件。
此错误仅发生在生产中,我无法在不知道代码中的哪一行导致它的情况下进行调试。
python ×7
javascript ×2
pandas ×2
python-3.x ×2
webpack ×2
audio ×1
binning ×1
combinations ×1
datetime ×1
docstring ×1
fastapi ×1
importerror ×1
ipython ×1
java ×1
matplotlib ×1
portaudio ×1
pyaudio ×1
pycharm ×1
pydantic ×1
pyqt5 ×1
qtwebengine ×1
reactjs ×1
seaborn ×1
stream ×1
stub ×1