我有一个包含 4000 个不同名字的静态列表:因此列表的长度很大(4000),但每个字符串大约有 4 到 12 个字符(它们是名称)。
然后,我有一个从数据库中检索到的 10000 个字符串的动态列表:这些字符串可能具有任意长度。
对于 10000 个字符串中的每一个,我需要输出该字符串是否包含 4000 个名称之一,如果包含,是哪个。如果它包含多个名称,我只需要其中一个(即第一个)。此外,不太可能找到这样的名称,因此 10000 个中可能只有 10 个包含名称。
到目前为止我的代码:
names # list of 4000 short static names
fields # list of 10000 retrieved strings
def findit(element):
for name in names:
if name in element:
return name
return None
output = [findit(element) for element in fields]
Run Code Online (Sandbox Code Playgroud)
这当然有效。然而,它是完全慢的,因为它不太可能找到一个名字,并且因为我正在测试是一个子字符串而不是相等(即我不能使用二等分或其他基于排序的索引技术)。它几乎无时无刻不在扫描所有姓名列表。所以基本上,它执行大约 10000 x 4000 = 4000 万次“in”比较。
有没有优化这种搜索的算法?
假设这个标准场景:
为什么?我想维护所有开发历史记录(所以没有挤压,C2 C3 和 C4),但是当我合并到 master 时,我希望 dev 和 master 都引用到 C4。我不认为需要创建新的提交(C4 和 C5 之间的代码差异应该是什么?它们是相同的),并且我不喜欢 dev 分支似乎位于 master 后面,而它们包含相同的代码。
您能向我解释一下为什么会这样以及是否有更好的做法吗?
假设我在子组件中有此EventEmitter:
export class ImageUploadComponent {
...
@Output() imageDataEvent: EventEmitter<string> = new EventEmitter<string>();
...
}
Run Code Online (Sandbox Code Playgroud)
根据发生的情况,此子组件可能会发出某些消息或产生错误:
...
this.imageDataEvent.emit('good');
...
this.imageDataEvent.error('wrong');
Run Code Online (Sandbox Code Playgroud)
父组件通过事件绑定监听它:
<app-image-upload (imageDataEvent)="onImageUpload($event)"></app-image-upload>
Run Code Online (Sandbox Code Playgroud)
当发出“ good”时,在父组件上调用onImageUpload,而$ event包含“ good”。
如何处理“错”案?我怎么知道事件是什么时候出错?事件绑定对好/坏事件的工作原理如何?
我有一个 formGroup 数组,其中每个元素代表一个表单。接下来我有一个 mat 表,我想要做的是将每个 tr (即每一行)生成为不同的表单,以便表的第 i 行链接到第 i 个 formGroup。因此,在第 i 行内,每个 td 元素都包含一个输入,并且该输入应链接到第 i 个 formGroup 内的 formControl。
所以基本上每一行都是一个表单,可以单独提交(每一行还有一个“提交”按钮)。
我怎样才能做到这一点?您能为我提供一个可以使用的样板吗?
编辑:这是我到目前为止所尝试的: https: //angular-dpwgzp.stackblitz.io ,我得到“错误:formControlName必须与父formGroup指令一起使用。” 另外,我不知道在每一行中放置标签的位置。
我有两只大熊猫df x和y,它们都具有相同的3列ABC(不可为空)。我需要创建一个新的df z,通过“从x减去与y的行完全相同的行”获得,即a
x left join y on x.A=y.A and x.B=y.B and x.C=y.C
where y.A is null
Run Code Online (Sandbox Code Playgroud)
我该怎么做?卡住了索引,连接,合并,联接...
例:
dataframe x
A B C
q1 q2 q3
q4 q2 q3
q7 q2 q9
dataframe y
A B C
q4 q2 q3
dataframe z
A B C
q1 q2 q3
q7 q2 q9
Run Code Online (Sandbox Code Playgroud) 考虑这段代码:
from pydantic import BaseModel
class MyModel(BaseModel):
x: int
appc = Celery(...)
@appc.task(bind=True)
def mytask(self):
return [MyModel(x=0)]
res = mytask.delay().get() # ERROR
Run Code Online (Sandbox Code Playgroud)
错误是:kombu.exceptions.EncodeError: TypeError('Object of type MyModel is not JSON serializable')
我尝试使用 kombu 序列化器或 pydantic 编码器,但我真的不明白出了什么问题。
我正在使用 Material Ui Autocomplete 组件。我希望当用户输入某些内容而他没有得到任何结果时,会noOptionsText显示一个可以单击以执行某些操作的按钮:
import React from "react";
import TextField from "@material-ui/core/TextField";
import Autocomplete from "@material-ui/lab/Autocomplete";
import Button from "@material-ui/core/Button";
export default function App() {
return (
<Autocomplete
options={["HELLO", "HI"]}
renderInput={(params) => (
<TextField {...params} label="Combo box" variant="outlined" />
)}
noOptionsText={
<Button onClick={() => console.log("CLICK SUCCESSFUL")}>
No results! Click me
</Button>
}
/>
);
}
Run Code Online (Sandbox Code Playgroud)
此处按钮成功显示,但是当我单击它时,自动完成功能在按钮接收点击之前关闭。
如果我设置debug={true}强制保持菜单打开,它会起作用,但这有许多其他副作用。也尝试强制,open={true}但它仍然被关闭。
你会怎么做?
Codesandbox 演示:https ://codesandbox.io/s/vigilant-haslett-sngyb ? file =/ src/App.js
我不确定如何使用 Redux Toolkit 和 Typescript 编写 React observable 史诗。
假设我有这个 authSlice:
import { CaseReducer, createSlice, PayloadAction } from "@reduxjs/toolkit";
type AuthState = {
token: string,
loading: boolean,
};
const initialState: AuthState = {
token: "",
loading: false,
};
const loginStart: CaseReducer<AuthState, PayloadAction<{username: string, password: string}>> = (state, action) => ({
...state,
loading: true,
token: "",
});
const loginCompleted: CaseReducer<AuthState, PayloadAction<{token: string}>> = (state, action) => ({
...state,
loading: false,
token: action.payload.token,
});
const authSlice = createSlice({
name: 'auth',
initialState,
reducers: …Run Code Online (Sandbox Code Playgroud) 我想要一个具有泛型类型的函数,T该函数必须是一个对象,并且必须至少有一个名为codetype 的属性string,然后用于keyof T获取所有对象键。
为什么这是无效的?
function TableView<T extends { code: string }>() {
return forwardRef<HTMLDivElement, { data: T[], columns: Columns<keyof T> }>(
(props, ref) => {
Run Code Online (Sandbox Code Playgroud)
错误:
TS2344: Type 'keyof T' does not satisfy the constraint 'string'.
Type 'string | number | symbol' is not assignable to type 'string'.
Type 'number' is not assignable to type 'string'.
Run Code Online (Sandbox Code Playgroud)
在哪里:
export interface Column<T extends string> {
field: T;
label: string;
align?: "left" | "center" | …Run Code Online (Sandbox Code Playgroud) 我有两组数据 - xA, yA 和 xB, yB。
我想并排绘制两个散点图,第一个散点图是 xA 与 yA,第二个是 xB 与 yB。
该图旨在显示过去(“A”组)和现在(“B”组)现象的差异。
因此,x'es 和 y'es 的限制可能非常不同,但是为了直观地比较这两组,最好 x 轴和 y 轴共享相同的比例,这样可以显示来自两组的所有数据。
我尝试使用共享 y 轴,对于 y 轴,它可以正常工作。但是,x 轴有不同的限制。如果我尝试“手动”设置 x 轴限制(即使我更喜欢自动绘图),首先会正确显示绘图,但是例如,如果我放大第一个、第二个的小方块一个仅在共享的 y 轴上调整大小,而 x 轴保持未缩放,因此情节失去意义。
如何“链接”两个图的轴?
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=1, cols=2,
shared_yaxes=True,
horizontal_spacing=0.02)
fig.add_trace(go.Scattergl(x=xA, y=yA, mode='markers'), row=1, col=1)
fig.add_trace(go.Scattergl(x=xB, y=yB, mode='markers'), row=1, col=2)
fig.update_layout(height=600, width=1200)
# I would prefer not to calculate limits by hand, but even if I do the zoom is …Run Code Online (Sandbox Code Playgroud) 我对如何将效果与应用程序逻辑一起使用感到困惑。
假设这个组件:
import React, { useEffect, useState } from "react";
export default function App() {
const [query, setQuery] = useState('');
useEffect( () => {
fetch('https://www.google.com?q='+query)
.then(response => console.log(response))
}); // depends on what?
return (
<div>
<input onChange={e => setQuery(e.target.value)} value={query} />
<button>Ask Google about {query}</button>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
我要那个:
问题:
isRun、 设置onClick={setIsRun(true)}、使效果取决于、在效果函数末尾[isRun]设置,并在效果函数的开头进行检查以防止从效果本身设置为 false 时由于状态改变而再次运行。这可行,但我发现它非常冗长且不舒服......setIsRun(false)if (!isRun)query值)并且之前的获取尚未完成而不运行获取,则应该触发该效果:使用之前的解决方案,isRun它不会触发,因为isRun已经设置为 …reactjs ×3
angular ×2
python ×2
python-3.x ×2
typescript ×2
celery ×1
git ×1
mat-table ×1
material-ui ×1
pandas ×1
plotly ×1
pydantic ×1
react-hooks ×1
redux ×1