首页 > 其他分享 >3.3 list(数组)

3.3 list(数组)

时间:2024-08-22 20:28:58浏览次数:5  
标签:liubei 数组 guanyu xiaohong list brother zhangfei 3.3 key

list(数组)

队列,列表的子成员类型为string

lpush key value

rpush key value

linsert key after|before 指定元素 value

lindex key index

lrange key start stop

lset key index value

lrem key count value

(1)添加子成员

# 在左侧(前)添加一条或多条数据
lpush key value1 value2 ...
# 在右侧(后)添加一条或多条数据
rpush key value1 value2 ...

# 在指定元素的左边(前)/右边(后)插入一个或多个数据
linsert key before 指定元素 value1 value2 ....
linsert key after 指定元素 value1 value2 ....

从键为brother的列表左侧添加一个或多个数据liubei、guanyu、zhangfei

lpush brother liubei
# [liubei]
lpush brother guanyu zhangfei xiaoming
# [xiaoming,zhangfei,guanyu,liubei]

从键为brother的列表右侧添加一个或多个数据,xiaohong,xiaobai,xiaohui

rpush brother xiaohong
# [xiaoming,zhangfei,guanyu,liubei,xiaohong]
rpush brother xiaobai xiaohui
# [xiaoming,zhangfei,guanyu,liubei,xiaohong,xiaobai,xiaohui]

从key=brother的xiaohong的列表位置左侧添加一个数据,xiaoA,xiaoB

linsert brother before xiaohong xiaoA
# [xiaoming,zhangfei,guanyu,liubei,xiaoA,xiaohong,xiaobai,xiaohui]
linsert brother before xiaohong xiaoB
# [xiaoming,zhangfei,guanyu,liubei,xiaoA,xiaoB,xiaohong,xiaobai,xiaohui]

从key=brother,key=xiaohong的列表位置右侧添加一个数据,xiaoC,xiaoD

linsert brother after xiaohong xiaoC
# [xiaoming,zhangfei,guanyu,liubei,xiaoA,xiaohong,xiaoC,xiaobai,xiaohui]
linsert brother after xiaohong xiaoD
# [xiaoming,zhangfei,guanyu,liubei,xiaoA,xiaohong,xiaoD,xiaoC,xiaobai,xiaohui]

注意:当列表如果存在多个成员值一致的情况下,默认只识别第一个。

127.0.0.1:6379> linsert brother before xiaoA xiaohong
# [xiaoming,zhangfei,guanyu,liubei,xiaohong,xiaoA,xiaohong,xiaoD,xiaoC,xiaobai,xiaohui]
127.0.0.1:6379> linsert brother before xiaohong xiaoE
# [xiaoming,zhangfei,guanyu,liubei,xiaoE,xiaohong,xiaoA,xiaohong,xiaoD,xiaoC,xiaobai,xiaohui]
127.0.0.1:6379> linsert brother after xiaohong xiaoF
# [xiaoming,zhangfei,guanyu,liubei,xiaoE,xiaohong,xiaoF,xiaoA,xiaohong,xiaoD,xiaoC,xiaobai,xiaohui]

(2)基于索引获取列表成员

根据指定的索引(下标)获取成员的值,负数下标从右边-1开始,逐个递减

lindex key index

获取brother下标为2以及-2的成员

del brother
lpush brother guanyu zhangfei xiaoming
lindex brother 2
# "guanyu"
lindex brother -2
# "zhangfei"

(3)获取列表的切片

闭区间[包括stop]

lrange key start stop

操作:

del brother
rpush brother liubei guanyu zhangfei xiaoming xaiohong
# 获取btother的全部成员
lrange brother 0 -1
# 获取brother的前2个成员
lrange brother 0 1
# 获取brother的后2个成员
lrange brother -2 -1

(4)获取列表的长度

llen key

获取brother列表的成员个数

llen brother

(5)按索引设置值

lset key index value
# 注意:
# redis的列表也有索引,从左往右,从0开始,逐一递增,第1个元素下标为0
# 索引可以是负数,表示尾部开始计数,如`-1`表示最后1个元素

修改键为brother的列表中下标为4的元素值为xiaohongmao

lset brother 4 xiaohonghong

(6)删除指定成员

移除并获取列表的第一个成员或最后一个成员

lpop key  # 第一个成员出列
rpop key  # 最后一个成员出列

获取并移除brother中的第一个成员

lpop brother
# 开发中往往使用rpush和lpop实现队列的数据结构->实现入列和出列
lrem key count value

# 注意:
# count表示删除的数量,value表示要删除的成员。该命令默认表示将列表从左侧前count个value的元素移除
# count==0,表示删除列表所有值为value的成员
# count >0,表示删除列表左侧开始的前count个value成员
# count <0,表示删除列表右侧开始的前count个value成员

del brother
rpush brother A B A C A
lrem brother 0 A
["B","C"]

del brother
rpush brother A B A C A
lrem brother -2 A
["A","B","C"]

del brother
rpush brother A B A C A
lrem brother 2 A
["B","C","A"]

标签:liubei,数组,guanyu,xiaohong,list,brother,zhangfei,3.3,key
From: https://www.cnblogs.com/Tmars/p/18374676

相关文章

  • 如何给定一个数组,找出其中满足勾股数的三个值?
    勾股数的定义3个正整数(a,b,c)满足a^2+b^2=c^2的关系,则称(a,b,c)为勾股数输入描述第一行为数组n,表示第二行的数组有多少元素。第二行为数组元素。输出描述每一行表示找到的勾股数。思路创建一个数组arr,对原数组a的所有元素求得平方值后,存入到arr对应的位......
  • C语言基础--数组详解
    目录数组的概述1数组的概念2数组的分类一维数组1一维数组的定义2数组的访问3数组元素的初始值3.1先定义,后设置值3.2定义同时设置初始值3.2.1全部设置初始值3.2.2部分设置初始值4一维数组的应用实例5一维字符数组5.1一维字符数组的定义5.2一维字符......
  • 在CentOS7.9上 编译安装openssl-3.3.1+编译安装Nginx1.26.2
    编译安装注意事项知识点一:openssl的重要性openssl在Linux系统中扮演着至关重要的角色,尤其是在网络安全方面。许多服务和应用程序都依赖于openssl提供的加密功能,包括但不限于web服务器(如Apache和Nginx)、数据库服务器(如MySQL和PostgreSQL)、邮件服务器、VPN等。以下......
  • [小白入门]一文掌握C/C++中数组和循环结合(堵车问题、红绿灯问题)
    1.堵车问题假如现在给定从出发地到目的地的道路条数和每条路上的车辆情况为:第一条路第二条路第三条路第四条路第五条路第六条路90705278108120且车辆数大于50为轻度拥堵;大于70为中度拥堵;大于90为重度拥堵。那么如何存储这些数据?---很显然要用数......
  • 8-LinkedList
    LinkedList实现类常用方法及使用/*LinkedList常用方法增加:addFirst(Ee)addLast(Ee)offer(Ee)offerFirst(Ee)offerLast(Ee)删除:poll()pollFirst()pollLast()removeFirst()remove......
  • 海康威视WEBSDK3.3控件开发-分屏预览多个摄像头
    海康威视WEB3.3控件开发包V3.3下载得到海康威视的demo。按照说明文档启动项目。如果是公司内部,一般都是配置好了对应的WiFi,不需要启动NGINX,直接启动.html文件即可海康威视视频教程注意:很多需要海康平台支持,需要付费参考:在vue3中使用海康威视WEB3.3控件开发包V3.......
  • Cookie,Session Filter,Listener详解
    HTTP请求的无状态性HTTP的无状态性是其一个重要的特征,指的是HTTP协议本身并不保留客户端与服务器交互的历史信息,换而言之,即每次的HTTP请求都是独立的,服务器在处理每一个请求时都不会记住前一个请求的状态无状态的含义独立性:每次的HTTP请求都是独立的,不依赖于之前的请......
  • 集合及数据结构第七节————LinkedList的模拟实现与使用
    系列文章目录集合及数据结构第七节————LinkedList的模拟实现与使用LinkedList的模拟实现与使用无头双向链表实现什么是LinkedListLinkedList的使用LinkedList的遍历ArrayList和LinkedList的区别文章目录系列文章目录集合及数据结构第七节————LinkedList的模......
  • 关于Arrays.asList返回List无法新增和删除?
    关于Arrays.asList返回的List无法新增和删除?这个是在写项目的时候发现的,然后就分析了一下源码,得其内部原理复现代码示例:publicclassArraysAsList{publicstaticvoidmain(String[]args){Integer[]array={1,2,3,4,5};List<Integer>list=......
  • 代码随想录 -- 数组 -- 螺旋矩阵II
    59.螺旋矩阵II-力扣(LeetCode)每画一条边都要坚持一致的左闭右开注意处理n为奇数时的矩阵中心点classSolution(object):defgenerateMatrix(self,n):res=[[0]*nforainrange(n)]startX=0startY=0loop=mid=n/2c......