如何维护ArrayList唯一数组?
例如,如果我有以下数组:
int [] a = {1,2,3};
int [] b = {2,1,3};
int [] c = {2,1,3};
Run Code Online (Sandbox Code Playgroud)
根据我的逻辑,我正在考虑独特的组合。因此,在上述情况下a = b = c,因为它们都含有"1","2","3"。
理想情况下,我想知道Java中是否有可以识别这一点的数据结构。
我尝试了以下方法:
Set<int []> result = new LinkedHashSet<>();
int [] x = {1,2,3};
int [] z = {2,1,3};
int [] m = {2,1,3};
result.add(x);
result.add(z);
result.add(m);
for(int [] arr: result){
printArray(arr);
}
Run Code Online (Sandbox Code Playgroud)
我的输出是:
1 2 3
2 1 3
2 1 3
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望我的输出仅打印上述组合之一。
背景
我有一些带有一些样本数据的向量,每个向量都有一个类别名称(地点,颜色,名称).
['john','jay','dan','nathan','bob'] -> 'Names'
['yellow', 'red','green'] -> 'Colors'
['tokyo','bejing','washington','mumbai'] -> 'Places'
Run Code Online (Sandbox Code Playgroud)
我的目标是训练一个模型,该模型采用新的输入字符串并预测它属于哪个类别.例如,如果新输入是"紫色",那么我应该能够将"颜色"预测为正确的类别.如果新输入是"卡尔加里",则应将"地点"预测为正确的类别.
APPROACH
我做了一些研究,遇到了Word2vec.该库具有我可以使用的"相似性"和"最相似性"功能.所以我想到的一种蛮力方法如下:
因此,例如对于输入"粉红色",我可以计算其与向量"名称"中的单词的相似性取平均值,然后对其他2个向量也执行此操作.给出最高相似度平均值的向量将是输入所属的正确向量.
问题
鉴于我在NLP和机器学习方面的知识有限,我不确定这是否是最好的方法,因此我正在寻找有关解决问题的更好方法的帮助和建议.我对所有建议持开放态度,并请指出我可能因为我是机器学习和NLP世界的新手而犯的任何错误.
在 python 中,我有一个随机字典,其中我使用元组作为键,每个元组都映射到某个值。
样本
Random_Dict = {
(4, 2): 1,
(2, 1): 3,
(2, 0): 7,
(1, 0): 8
}
Run Code Online (Sandbox Code Playgroud)
上面的示例键:(4,2) 值:1
我正在尝试在 Javascript 世界中复制这个
这就是我想出的
const randomKeys = [[4, 2], [2, 1], [2, 0], [1, 0] ]
const randomMap = {}
randomMap[randomKeys[0]] = 1
randomMap[randomKeys[1]] = 3
randomMap[randomKeys[2]] = 7
randomMap[randomKeys[3]] = 8
randomMap[[1, 2]] = 3
Run Code Online (Sandbox Code Playgroud)
我想知道这是否是最有效的方法。我几乎想知道我是否应该做一些事情,比如在一个变量中保存两个数字,这样我就可以在 JS 中拥有一个映射 1:1 的字典。寻找更好的建议和解决方案
例
给定数组[1,2,3]或[1,2,3,4],请打印长度为3的所有唯一组合。
码
public class PrintCombo {
public void printCombo(int [] a, int [] buffer, int startIndex, int bufferIndex){
printArray(buffer);
if(buffer.length == bufferIndex){
System.out.println();
System.out.println("SOLUTION START");
printArray(buffer);
System.out.println("SOLUTION END");
System.out.println();
return;
}
if(startIndex == a.length){
return;
}
for(int i = startIndex; i<a.length; i++){
buffer[bufferIndex] = a[i];
printCombo(a,buffer,i+1,bufferIndex+1);
}
}
public void printArray(int [] buffer){
for(int i = 0; i<buffer.length; i++){
System.out.print(" "+buffer[i]);
}
System.out.println();
}
}
Run Code Online (Sandbox Code Playgroud)
输出值
对于数组[1,2,3] ==> 1,2,3
对于数组[1,2,3,4] ==> 1,2,3 || 1,2,4 || 1,3,4 || 2,3,4
问题 …
背景
我试图迭代一个基本上包含十六进制值的缓冲区对象。这对我来说是完美的,因为每个十六进制值都是我需要解码的。但是,当我循环遍历数组时,它们会转换为十进制值。如何在不转换值的情况下循环它?
我的代码
console.log(encoded)
const buf = Buffer.from(encoded)
for (const item of buf) {
console.log(item)
}
Run Code Online (Sandbox Code Playgroud)
我的一些输出
<Buffer 0c 00 00 00 99 4e 98 3a f0 9d 09 3b 00 00 00 00 68 48 12 3c f0 77 1f 4a 6c 6c 0a 4a 0f 32 5f 31 31 39 38 36 31 5f 31 33 33 39 33 39 40 fc 11 00 09 00 ... 336 more bytes>
12
0
0
0
153
78
152
58 …Run Code Online (Sandbox Code Playgroud) 以下 cron 表达式cron(0 14 ? * MON-FRI *)基本上在周一到周五下午 4:00 运行。
我想知道是否可以修改表达式,以便我可以在每周一至周五的凌晨 4:00 和下午 4:00 运行某些内容。
我有一个 lambda 函数,它通过 AWS lambda 函数处理 POST 请求。它处理 post 请求的正文并进行查询并返回响应。
我的 Lambda 函数
const { Pool, Client } = require("pg");
const userName = 'blah';
const hostEndPoint = 'blah';
const databaseType = 'blahblah';
const pwd = 'pass pass';
const portNumber = 5432;
var AWS = require('aws-sdk');
const pool = new Pool({
user: userName,
host: hostEndPoint,
database: databaseType,
password: pwd,
port: portNumber
});
exports.handler = async (event) => {
let body = JSON.parse(event.body);
let name = body.name;
let money = body.money;
let …Run Code Online (Sandbox Code Playgroud) I have a bucket in s3 called "sample-data". Inside the Bucket I have folders labelled "A" to "Z".
Inside each alphabetical folder there are more files and folders. What is the fastest way to download the alphabetical folder and all it's content?
For example --> sample-data/a/foo.txt,more_files/foo1.txt
In the above example the bucket sample-data contains an folder called a which contains foo.txt and a folder called more_files which contains foo1.txt
I know how to download a single file. For instance if …
我有两个 shell 脚本,一个是父脚本,另一个是子脚本。
父脚本的代码
#!/bin/bash
set -euo pipefail
bash /home/ubuntu/test/deploy.sh
echo "I can still do this"
Run Code Online (Sandbox Code Playgroud)
子脚本代码
python -c \
"""
from db_wrapper import db
import sys
query_string = \
'select * from pipeline_release_status \
where release_deployed_at is null'
release_status = db.run_query(db.get_environment(), query_string)
if not release_status:
sys.exit(1)
"""
if [ $? -eq 1 ]
then
echo "No release to deploy"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
不管子脚本是否退出,我都不希望父脚本退出,所以我总是希望echo "i can still do this"语句总是被执行。但是在我的情况下,如果子脚本退出,那么父脚本也会退出。
我该如何防止?
我正在尝试抓取网站,有时会收到此错误,这令人担忧,因为我随机收到此错误,但在重试后,我没有收到此错误。
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.somewebsite.com', port=443): Read timed out. (read timeout=None)
Run Code Online (Sandbox Code Playgroud)
我的代码如下所示
from bs4 import BeautifulSoup
from random_user_agent.user_agent import UserAgent
from random_user_agent.params import SoftwareName, OperatingSystem
import requests
software_names = [SoftwareName.CHROME.value]
operating_systems = [OperatingSystem.WINDOWS.value, OperatingSystem.LINUX.value]
user_agent_rotator = UserAgent(software_names=software_names, operating_systems=operating_systems, limit=100)
pages_to_scrape = ['https://www.somewebsite1.com/page', 'https://www.somewebsite2.com/page242']
for page in pages_to_scrape:
time.sleep(2)
page = requests.get(page, headers={'User-Agent':user_agent_rotator.get_random_user_agent()})
soup = BeautifulSoup(page.content, "html.parser")
# scrape info
Run Code Online (Sandbox Code Playgroud)
正如您从我的代码中看到的,我什至使用 Time 使我的脚本休眠几秒钟,然后再请求另一个页面。我还使用随机的 user_agent。我不确定是否可以做任何其他事情来确保我永远不会收到“读取超时”错误。
我也遇到过这个,但他们似乎建议向标题添加额外的值,但我不确定这是否是一个通用的解决方案,因为这可能必须根据网站的具体情况而定。我还在另一篇SO Post上读到,我们应该对请求进行 Base64 处理并重试。这让我很困惑,因为我不知道该怎么做,而且这个人也没有提供例子。
任何有刮擦经验的人的建议将不胜感激。
我有一个名为$db_main_info包含以下字符串的变量
{ "host": "env-prod-blah-db.blah.us-east-1.rds.amazonaws.com", "dbname": "blahblah", "user": "foobar", "password": "foopassfoopass" }
Run Code Online (Sandbox Code Playgroud)
我正在做以下事情
read host dbname user password < <(echo $db_main_info | jq -r '.host, .dbname, .user, .password')
Run Code Online (Sandbox Code Playgroud)
执行上述语句后,当我这样做时,echo $host它会打印以下内容
env-prod-blah-db.blah.us-east-1.rds.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
dbname然而,其他 3 个变量user永远password不会被设置。我不确定我做错了什么?
我希望变量dbname取值blahblah,变量 user 取值foobar,变量password取值foopassfoopass
python ×4
bash ×2
java ×2
javascript ×2
node.js ×2
amazon-s3 ×1
amazon-sns ×1
arraylist ×1
aws-lambda ×1
boto3 ×1
combinations ×1
cron ×1
gensim ×1
linux ×1
nlp ×1
python-3.x ×1
recursion ×1
shell ×1
unix ×1
web-scraping ×1
word2vec ×1