如何解决如果不存在IF和ELSE,如何在不存在键值对的情况下如何在python字典中自动初始化键值?
如何自动将python字典的键值(不知道使用了哪些键)初始化为1(如果尚不存在且仅存在,则递增)?我想这个概念可以用于任何其他逻辑。
示例:
以下代码会出现错误,因为某些情况char_counts[char]
尚未尚未初始化。我还没有办法初始化它,因为我不知道一开始会使用什么键值对。 (实际上,如果我这样做的话,除了循环之外,python中是否有一种便捷的方法可以一键初始化键值对?)
无论如何,我的主要问题如下。
for ~some loop~:
char_counts[char] += 1
这是我当前的解决方法,对于简单的操作来说似乎有点冗长。 是否有更好的方法来简化/缩短此操作?
for ~some loop~:
if char_counts.get(char,None):
char_counts[char] += 1
else:
char_counts[char] = 1
谢谢!
解决方法
使用python集合库中的defaultdict
// Method in React
setData() {
let data = {
id:this.state.contents.id,//contents is array in the state
write:this.state.contents.writer,title:this.state.contents.title,description:this.state.contents.description
}
fetch('http://localhost:3001/board/giveresult',{
method: 'POST',headers:{
'Content-Type':'application/json'
},body:JSON.stringify(data)
})
.then (res => res.json())
.then (data => console.log(data));
}
//NodeJS Express
const express = require('express');
const app = express();
const receive = require('./routes/receive')
const giveResult = require('./routes/giveResult')
const port = process.env.PORT || 3001;
const cors = require('cors');
var bodyParser = require('body-parser');
app.use(cors());
app.use(bodyParser.json())
app.use('/board/giveresult',giveResult);
app.use('/board/receive',receive);
app.listen(port,function(){
console.log(`connected ${port} port!`);
});
//giveResult
var express = require('express');
const router = express.Router();
var mysql = require('mysql');
const dbconfig = require('../mysql.js');
const { Router } = require('express');
const connection = mysql.createConnection(dbconfig);
var bodyParser = require('body-parser');
router.post('/',function(req,res) {
if(err) throw err;
var post = req.body.id;
console.log(post)
res.send('suceess!!!!');
});
module.exports = router;
defaultdict将永远不会抛出KeyError,如果缺少密钥,则该密钥将初始化为0。
,您可以使用字典对象的 get 方法。
如果字典中不存在该键,则get将返回您要初始化字典的默认值。
char_counts = {}
for ~some loop~:
# If key is not present,0 will be returned by default
char_counts[char] = char_count.get(char,0) + 1
一旦您了解了上面的代码是如何工作的,然后在collections模块中阅读defaultdict并尝试下面的代码。
from collections import defaultdict
char_counts = defaultdict(int)
for ~some loop~:
char_counts[char] += 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。