sqlite的类列表包装器

sqlist的Python项目详细描述


https://travis-ci.org/valericus/sqlist.svg?branch=master

sqlist类似于shelve,但用于列表。它用pickle序列化数据并放入sqlite数据库。

用法

sqlist对象的行为主要类似于随意的python列表。例如,可以从列表创建sqlist。

>>> import sqlist
>>> values = sqlist.SQList([1, 2, 3])
>>> values
sqlist.SQList([1, 2, 3])

您可以从列表中按索引获取项。

>>> values[0]
1
>>> values[-1]
3

切片也可用。

>>> values[0:2]
[1, 2]

您可以很容易地将项追加到sqlist并从中弹出它们。

>>> values.append(23)
>>> values
sqlist.SQList([1, 2, 3, 23])
>>> valuea.pop(0)
1
>>> values
sqlist.SQList([2, 3, 23])

不幸的是,插入还不可用,但计划在以后的版本中使用。

排序

您可以很容易地对sqlist进行就地排序,但是要小心,这种排序可能会很长。

>>> values.sort(key=lambda x: 1 / x)
>>> values
sqlist.SQList([23, 3, 2])
>>> values.sort()
>>> values
sqlist.SQList([2, 3, 23])

还有一种方法可以使您的sqlist保持永久排序。

>>> values = sqlist.SQList(['a', 'aa', 'aaaa'], key=lambda x: len('x'))
>>> values
sqlist.SQList(['a', 'aa', 'aaaa'], key=lambda x: len('x'))
>>> values.append('bbb')
>>> values
sqlist.SQList(['a', 'aa', 'bbb', 'aaaa'], key=lambda x: len('x'))

这种方式有点难看,但它是为高性能而设计的。

多线程处理

目前sqlist不是线程安全的,可能以后会变成这样。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何避免springbootstarterparent和dependency中的flyway包冲突   java文本文件写入不起作用   java获取名为DAO类的Bean创建异常   java类路径和清单文件   如何使用Java中的模式来获取像C中的“sscanf”这样的组?   java Spring自动连接具有构造函数的类   clientSecurity运行的java geode示例失败   java JavaFX:在FXML中从ResourceBundle访问非string对象   java登录到google firebase   java对象在通过构造函数后不会更改。为什么?   java(Android)对特定页面的操作webView   javascript如何在webview的js中从java调用变量   持久化—一种在Java中存储和检索对象而不使用关系数据库的简单方法?   java Ldap获取通讯组列表中的用户   java检查温度条件   java后退按钮警报框(Android Studio)   数组java列表问题:为什么我运行它时,它会在第三次打印时打印出4?   java相对路径与绝对路径