我一直在尝试在Python中实现队列,并且遇到了问题。
我试图使用列表来实现Queue数据结构,但是我不太清楚如何进行enqueue和dequeueO(1)操作。
我在网上看到的每个示例似乎都只是追加enqueue操作,并从dequeue操作列表中删除第一个元素。但这会使dequeue操作O(n)(其中n是列表的大小)正确吗?
我有基本的东西想念吗?还是必须使用LinkedLists有效地实现队列?
import unittest
class Queue():
def __init__(self):
self._queue = []
self.size = 0
self.maxSize = 10
def enqueue(self, item):
if self.size < self.maxSize:
self._queue.append(item)
def dequeue(self):
'''
Removes an item from the front of the list. Remove first element of
the array
'''
first = self._queue[0]
del self._queue[0]
return first
Run Code Online (Sandbox Code Playgroud) 我正在尝试一些简单的方法,我可以使用fetch API从我的应用程序的前端发出请求
let request = new Request('http://localhost:3000/add', {
headers: new Headers({
'Content-Type': 'text/json'
}),
method: 'GET'
});
fetch(request).then((response) => {
console.log(response);
});
Run Code Online (Sandbox Code Playgroud)
我在服务器上处理这个请求是这样的,
app.get('/add', (req, res) => {
const data = {
"number1": "2",
"number2": "4"
};
res.send(data);
});
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在前端console.log(响应)上访问我的数据时,我得到以下对象
Response {type: "basic", url: "http://localhost:3000/add", redirected: false, status: 200, ok: true…}
body:(...)
bodyUsed:false
headers:Headers
ok:true
redirected:false
status:200
statusText:"OK"
type:"basic"
url:"http://localhost:3000/add"
__proto__:Response
Run Code Online (Sandbox Code Playgroud)
响应正文是空的.我认为这是数据出现的地方?如何有效地从服务器传递数据?
我知道这个问题之前已经被问过很多次了,我已经尝试过实施这些解决方案,但它们对我来说并不真正有效。
我一直在努力弄清楚如何通过 Node.js 上传文件和读取文件大小。我最初尝试使用强大的 npm,它似乎不再维护,因为我找不到关于它的文档。我无法处理这些错误,所以我尝试使用 multer。但是,当我尝试记录 req.file 时,我反复收到未定义的日志。
我有下面的 server.js 代码
var express = require('express');
var formidable = require('formidable');
var multer = require('multer');
var path = require('path');
var upload = multer({dest: './uploads'});
var fs = require('fs');
var app = express();
var PORT = 8080;
app.use(express.static(__dirname+'/views'));
app.set('views', './views');
app.set('view engine', 'jade');
app.get('/', function(req, res){
res.render('index.jade');
});
app.post('/upload', upload.single('Upload'),function(req, res){
console.log(req.file);
});
app.listen(PORT, function(){
console.log('Express listening on port: '+PORT);
});
Run Code Online (Sandbox Code Playgroud)
下面提供了我的带有 AJAX 调用的 javascript 代码
$('#upload-butt').on('change', function(){
var file = $(this).get(0).files;
console.log(typeof …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 d3.scaleOrdinal() 为一组数据返回相应的月份名称。月份由原始数据集中 1 到 12 的整数提供,可在此处找到。(我在每个数据对象中手动添加了一个 monthName 字段)
https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/global-temperature.json
这是我尝试创建比例的方式
var y = d3.scaleOrdinal().range([height, 0]).domain(month);
chart.selectAll('.temp')
.data(monthlyData)
.enter().append('rect')
.attr('class', 'temp')
.attr('x', function(d){
return x(new Date(d.year, 0))
})
.attr('y', function(d){
return y(d.monthName)
})
.attr('transform', 'translate(30, 0)')
.attr('width', gridWidth)
.attr('height', gridHeight)
.attr('fill', function(d){
return colorScale(d.variance + data.baseTemperature)
});
Run Code Online (Sandbox Code Playgroud)
然而,我得到了一个非常奇怪的结果,我的数据被分成两个带,一个在顶部,一个在底部,可以在这个代码笔中看到
http://codepen.io/redixhumayun/full/ZBgVax/
我该怎么做呢?
我有一个 SQL 查询,它在表中查找特定值,然后在三个表之间进行内部联接以获取结果集。这三个表是fabric_barcode_oc, fabric_barcode_items&fabric_barcode_rolls
初始查询
查询的初始版本如下
EXPLAIN ANALYZE
SELECT `oc`.`oc_number` AS `ocNumber` , `roll`.`po_number` AS `poNumber` ,
`item`.`item_code` AS `itemCode` , `roll`.`roll_length` AS `rollLength` ,
`roll`.`roll_utilized` AS `rollUtilized`
FROM `fabric_barcode_rolls` AS `roll`
INNER JOIN `fabric_barcode_oc` AS `oc` ON `oc`.`oc_unique_id` = `roll`.`oc_unique_id`
INNER JOIN `fabric_barcode_items` AS `item` ON `item`.`item_unique_id` = `roll`.`item_unique_id_fk`
WHERE BINARY `roll`.`roll_number` = 'dZkzHJ_je8'
Run Code Online (Sandbox Code Playgroud)
EXPLAIN ANALYZE在此运行时,我得到以下信息
"-> Nested loop inner join (cost=468160.85 rows=582047) (actual time=0.063..254.186 rows=1 loops=1)
-> Nested loop inner join (cost=264444.40 rows=582047) …Run Code Online (Sandbox Code Playgroud) 我的 Node 工作区的 server.js 文件中有以下代码。我的问题是,每次我从 bash 命令行运行 server.js 文件时,我是否会设置一个名为 polls 的新集合?或者 MongoDb 是否认识到该集合已经存在?当我终止与 Mongo 的连接然后从命令行重新启动它时会怎么样?
mongo.connect('mongodb://localhost:27017/url-shortener', function(err, newDb){
if(err){
throw new Error('Database failed to connect');
}else{
console.log('Successfully connected to MongoDb database');
}
db = newDb;
db.createCollection('polls', {
autoIndexId: true
});
});
Run Code Online (Sandbox Code Playgroud) 我有一个包含 4 个请求对象的数组,我想在这些对象上使用 Fetch API 并取回承诺。然后我想解决这些承诺中的每一个并取回价值。
这是我构建请求对象的方式。
let requestsArray = urlArray.map((url) => {
let request = new Request(url, {
headers: new Headers({
'Content-Type': 'text/json'
}),
method: 'GET'
});
return request;
});
Run Code Online (Sandbox Code Playgroud)
这是我尝试使用的方式 Promise.all()
Promise.all(requestsArray.map((request) => {
return fetch(request).then((response) => {
return response.json();
}).then((data) => {
return data;
});
})).then((values) => {
console.log(values);
});
Run Code Online (Sandbox Code Playgroud)
最后一个console.log(values)不会向控制台打印任何内容。我用Promise.all()错了吗?
我知道第一个请求通过了,当我单独运行每个请求时,它工作正常。唯一的问题是当我尝试同时运行它们时。
我用 D3 制作了一张地图,并使用了来自 nasa.gov 的一些数据(https://data.nasa.gov/resource/y77d-th95.geojson)这是代码笔 http://codepen.io/redixhumayun/full/ VPepqM/
我尝试使用以下代码制作工具提示。
//setting up the tooltip here
var div = svg.append('div')
.attr('class', 'tooltip')
.style('opacity', 0.7);
var meteorites = meteorite.selectAll('circle')
.data(data.features)
.enter()
.append('circle')
.attr('cx', function(d) {
return projection([d.properties.reclong, d.properties.reclat])[0]
})
.attr('cy', function(d) {
return projection([d.properties.reclong, d.properties.reclat])[1]
})
.attr('fill', function(d) {
return color_scale(d.properties.mass)
})
.attr('stroke', 'black')
.attr("stroke-width", 1)
.attr('r', function(d) {
return weight_scale(d.properties.mass);
})
.attr('fill-opacity', function(d) {
if (weight_scale(d.properties.mass) > 7) {
return 0.5
}
return 1;
})
.on('mouseover', function(d) {
div.transition().duration(200)
.style('opacity', 0.9) …Run Code Online (Sandbox Code Playgroud)