标签:: Python

求一个数组的波峰

三个月前被问到一个有趣的算法题,当时想了很久才想出来,现在写篇博客记录一下。 给定一个很长的数组 arr,已知数组的长度 length 且 length >= 3,已知数组的第一个元素不比第二个元素大,最后一个元素不比倒数第二个元素大。那么求这个数组中 任意一个 波峰的数组下标。PS:不比前一个元素小而且不比后一个元素小的元素称为波峰。 arr[1] >= arr[0],那么只需要

双向链表和哈希表实现 LRUCache

LRUCache 是一个很常用的缓存实现,我们简单用 Python 实现它 定义LRU 是 Least Recently Used 的缩写,近期最少使用算法。LRUCache 意味着一个带有容量的缓存,当缓存的容量已满而且需要插入新值的时候,缓存需要淘汰一个旧值。如何去淘汰呢,这个时候就需要用到 LRU 算法。 LRU 意味着这样的功能1234567# 如果 Cache 里有两个 key =&

Scrapy 的命令行工具

默认设置系统,用户,项目。优先级从低到高 系统/etc/scrapy.cfg 用户~/.config/scrapy.cfg和~/.scrapy.cfg 项目./scrapy.cfg 另外可以通过环境变量来设置 默认项目结构1234567891011scrapy.cfgmyproject/ __init__.py items.py pipelines.py setting

【译】XPath 实用技巧

原文链接:XPath Tips from the Web Scraping Trenches 简介在网页抓取的过程中, XPath 是一个很好的工具,因为它可以选择文档里的元素而且比 CSS 选择器更灵活。如果你正在寻找一个教程,这是一个好的选择。 在这篇文章中,我们将向你展示一些我们在使用 XPath 的过程中发现的技巧。 考虑使用 text 元素当你需要使用元素的内容(the text con

Scrapy 入门

创建一个名为 project_name 的项目1scrapy startproject project_name 定义 ItemItem 使用方法与 Python 的字典类似,提供了额外保护机制避免拼写和未定义字段错误。 123class Example_Item(scrapy.Item): field_name = scrapy.Field() second_name = scrap

【译】写下你的第一个 Django 应用 part 2

设置数据库现在,编辑你的 mysite/settings.py,这是一个课业设置模块级别的变量的普通 Python 模块。 Django使用SQLite作为默认的数据库,如果你只对Django感兴趣,这是最好的选择。SQLite包含在Python里,所以你不需要安装任何东西来支持你的数据库。当你真正开启你的项目的时候,你可能需要更加鲁棒的数据库,例如PostgreSQL,来避免一些在数据库中令人头

【译】写下你的第一个 Django 应用 part 1

让我们从例子学起 通过这个教程,我们就可以简单地完成一个投票应用 应用。 这包含两个部分: 一个关于投票的公共的网站,用户可以查看可以投票的项目,也可以对项目进行投票。 一个后台管理界面,管理员可以增加,修改,删除公共网站里的待投票项目。 我们这里假设你已经在你的电脑中安装了 Django 。如果你不确定是否已经安装,可以在 Terminal 中输入这行命令: 1python -c "im

简明数据结构

数据结构是一门很重要的计算机基础课,知识点多而且难度不小,这里列出了数据结构中比较容易遗忘的内容。 在这篇博客中,我尽量用我觉得最好理解的方式描述一个算法,简明扼要,相关的代码可能不完全,如果有兴趣的话欢迎访问我的 GitHub 字符串快速匹配 - KMP next 数组的求解,即部分匹配值 123456789int q = 1, k = 0;next[0] = 0;for (q = 1;