python redis list_Python redis list列表操作
本节主要介绍对列表数据类型的操作,包括在左右两边添加元素、在指定位置添加元素、删除指定位置的元素等。
列表数据类型的结构如图 1 所示。
图 1 列表类型
1) lindex(键,位置):该函数用于得到指定键下某个位置的值。位置是整数,0 表示第一个位置的元素的值。
>>> r.exists('list_obj2') # 是否存在list_obj2这个键
1 # 存在
>>> r.llen('list_obj2') # 该键包含多少个元素
3 # 3个元素
>>> r.lindex('list_obj2', 0) # 0表示第一个位置的元素
b'3'
>>> r.lindex('list_obj2', 1) # 1表示第二个位置的元素
b'2'
>>> r.lindex('list_obj2', 2) # 2表示第三个位置的元素
b'1'
2) lrange(键,开始位置,结束位置):该函数返回指定键下指定区间内元素的值,当然也可以得到所有元素的值。返回值是一个列表。
>>> r.exists('list_obj2') # 是否存在list_obj2这个键
1 # 存在
>>> r.llen('list_obj2') # 该键包含多少个元素
3 # 3个元素
>>> r.lrange('list_obj2', 0, 3) # 返回所有元素的值
[b'3', b'2', b'1']
3) lpush(键,值):该函数用于在列表的左边插入元素。返回值是修改后列表中元素的个数。
>>> r.lpush('list1', 12)
1 # 现在只有元素
>>> r.type('list1') # 查看类型
b'list'
>>> r.lindex('list1', 0) # 查看第一个元素的值
b'12'
>>> r.lpush('list1', 18) # 在左边插入一个元素18
2 # 现在有两个元素了
>>> r.lindex('list1', 0) # 读取第一个元素的值
b'18'
>>> r.lindex('list1', 1) # 读取第二个元素的值
b'12'
>>> r.lindex('list1', -1) # 允许使用-1表示最后一个元素的值
b'12'
允许一次插入多个元素,方法是传入多个参数。最后一个参数是最后被插入的,所以其也是在列表的最左边,也就是 index=0 的位置。
>>> r.lpush('list1', 1, 2, 3) # 一次在左边插入1、2和3
7 # 现在有7个元素
>>> r.lindex('list1', 0) # 最左边的元素应该是3
b'3'
>>> r.lindex('list1', 1) # 左边第二个元素应该是2
b'2'
>>> r.lindex('list1', 2) # 左边第三个元素应该是1
b'1'
4) rpush(键,值):该函数用于在列表的右边插入元素。返回值是插入后列表的元素个数。
>>> r.rpush('list1', 180) # 在右边插入一个元素180
3 # 现在包含3个元素
>>> r.lindex('list1', -1) # 查看最右边的元素的值
b'180' # 就是刚才插入的值
>>> r.rpush('list1', 190) # 再在右边插入一个新的值190
4
>>> r.lindex('list1', -1) # 查看最右边的元素的值
b'190'
和 lpush() 一样,也可以一次插入多个元素:
>>> r.rpush('list1', 199, 299, 399) # 插入3个元素
10
>>> r.lindex('list1', -1) # 最右边的元素是399
b'399'
>>> r.lindex('list1', -2) # 右边第二个元素是299
b'299'
>>> r.lindex('list1', -3) # 右边第三个元素是199
b'199'
可以发现 rpush(list,val1,val2,val3) 等效于下面的代码段:
rpush(list, val1)
rpush(list, val2)
rpush(list, val3)
5) llen(键):该函数用于返回指定键下元素的个数,其仅对列表对象有效。
>>> r.exists('list_obj2') # 是否存在键list_obj2
0 # 不存在
>>> r.lpush('list_obj2', 1, 2, 3) # 依次在左边插入1、2、3三个元素
3 # 现在列表中有3个元素了
>>> r.exists('list_obj2') # 是否存在键list_obj2'
1 # 存在
>>> r.type('list_obj2') # 该键对象的值的类型
b'list' # 列表
>>> r.llen('list_obj2') # 得到对应键的列表元素个数
3 # 元素个数为3
6) lpop():该函数用于删除最左边的元素。返回值是原来最左边元素的值。
>>> r.lindex('list1', 0) # 原来第一个元素的值为3
b'3'
>>> r.lindex('list1', 1) # 原来第二个元素的值为2
b'2'
>>> r.lpop('list1') # 删除第一个元素
b'3' # 删除的元素的值
>>> r.lindex('list1', 0) # 现在第一个元素就是原来的第二个元素了
b'2'
7) rpop(键):该函数用于删除最右边的元素。返回值是原来最右边元素的值。
>>> r.lindex('list1', -1) # 最右边元素的值
b'399'
>>> r.lindex('list1', -2) # 倒数第二个元素的值
b'299'
>>> r.rpop('list1') # 弹出最右边的,也就是倒数第一个元素
b'399' # 弹出元素的值
>>> r.lindex('list1', -1) # 现在的最后一个元素,就是原来的倒数第二个元素
b'299'
python redis list_Python redis list列表操作相关推荐
- python中的常见的列表操作及注意事项
1.1 使用append()添加元素到尾部 传统的向列表中添加元素的方法是利用append()函数将元素一个个添加到尾部. 1.2 使用extend()或+=合并列表 使用extend()可以将一 ...
- Python入门(02) -- 列表操作
一.使用for循环遍历列表 first_names = ['zhao', 'qian', 'sun', 'li'] for first_name in first_names:print(first_ ...
- pythonif语句的冒号总是报错_干货:python入门if语句及其列表操作
本教程使用的课本是<Python编程:从入门到实践>,作者:[美] Eric Matthes 本节学习代码中针对不同情况进行分别处理的方法,关键字是if.学完这节,从理论上讲,你就可以编写 ...
- [转载] python怎么获取redis中的数据_python操作redis数据库
参考链接: 使用Python在Selenium中进行非阻塞等待 3.redis基本命令 String set(name, value, ex=None, px=None, nx=False, xx=F ...
- redis:redis介绍和安装、普通连接和连接池、redis 5大数据类型之字符串、Hash、列表、其他操作(通用)、管道、django使用redis、接口缓存
目录 一. redis介绍和安装 二. 普通连接和连接池 三. redis 5大数据类型之字符串 四. redis 5大数据类型之Hash 五. redis 5大数据类型之列表 六. 其他操作(通用) ...
- python编程(redis操作)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 为了提高db的运行速度,同时也由于内存容量的不断增大,现在很多网站和服务器代码越来越喜欢用red ...
- go操作redis之go-redis,python操作redis之redis
目录 go操作redis go-redis安装 连接方式 单机连接 TLS连接模式 Redis 集群连接 Redis 哨兵模式连接 基本使用 执行任意命令 redis.Nil zset操作 扫描或遍历 ...
- python使用redis在实际场景使用_用python操作redis及redis的一些应用场景
redis安装 网上很多windows.Linux的安装教程,可根据自己的需要寻找对应教程安装 redis-py安装 pip install redis redis可视化工具 API的使用 redis ...
- redis的lrange_thinkphp5操作redis系列教程】列表类型之lRange,lGetRange
namespace app\admin\controller; use think\cache\driver\Redis; use think\Controller; use \think\Db; c ...
最新文章
- Python数据挖掘:数据探索,数据清洗,异常值处理
- java多线程抽奖_java 线程池、多线程并发实战(生产者消费者模型 1 vs 10) 附案例源码...
- java实现自动收红包功能_Java实现抢红包功能
- arcengine 加载地图不显示_用LSV下载城市地图、全省地图教程
- java resultset 映射到实例_[Java]ResultSet的用法与实例
- STP端口状态特点、STP端口角色特点、链路状态发生变化,STP如何重新收敛? TCN何时发?uplinkfast技术、Portfast技术、backbonefast技术、常见的STP调整命令:
- Intel 64/x86_64/IA-32/x86处理器通用寄存器 (2) - 64位通用寄存器
- 高可用性及容灾的几个衡量指标
- 广告主成本怎么又超了!
- JavaScript 原始数据类型转换
- python爬图mzitu_换个框架爬妹子图mzitu解决直接访问的403
- 使用Modern UI for WPF的导航功能
- Android xml 画上半圆 矩形,Android 半圆矩形的实现
- 在HTML中插入SVG的几种方式
- PHP单例模式demo
- 计算机毕业设计Java服装连锁店后台管理系统(源码+系统+mysql数据库+lw文档)
- Shiro Session及SessionManager的设计概念
- 阿里百秀响应式页面制作
- xls导入mysql heidisql_HeidiSQL 导入Excel数据
- IT系统设计中的5S原则
热门文章
- 如何在单例模式下禁止init
- Linux Matlab服务器进一步改造成Application Server(应用程序服务器)
- [SHELL] LAMP一键安装脚本设计(v2.1)
- c# list排序的三种实现方式
- 读取网络抓包文件data得到参数
- python3 开发面试题(面向对象)6.6
- Codeforces Educational Codeforces Round 3 D. Gadgets for dollars and pounds 二分,贪心
- HDLM命令dlnkmgr详解之二__help/clear
- javascript中构造StringBuffer实例
- NET常见问题记录(不定期更新)