一、列表的简介

    列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = [‘fuyong’,123,Ture,(1,2,3,’123’),[1,2,3,’小明’,],{‘name’:’fuyong’}]   。列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

  下面我们就来详细讲解一下列表的增删改查以及其他方法。

二、增加列表元素的方法

注意:与字符串的方法不同,所有对列表操作的方法均会改变原有列表的值,而不是创建一个新的列表!!!

▷ append()方法:

此方法是用来在列表的结尾处追加元素,例如:

 name_list = ['赵','钱','孙','李','周',]
name_list.append('吴')
print(name_list)
# 结果是 ['赵', '钱', '孙', '李', '周', '吴']

▷insert()方法:

此方法是用来在列表的指定索引位置插入内容,后面参数分别传递索引值、插入元素

 name_list = ['赵','钱','孙','李','周',]
name_list.insert(,'付')
print(name_list)
# 结果为:['赵', '钱', '付', '孙', '李', '周']

▷extend()方法:

此方法是用来拓展列表,给他们追加一些元素,后面的参数可以是字符串,列表以及任何可迭代对象,python解释器会将此对象一一拆分然后追加至列表,例如:

 name_list = ['赵','钱','孙','李','周',]
name_list.extend('吴')
name_list.extend('郑王')
name_list.extend("fu")
name_list.extend(['a','b','c'])
name_list.extend(range())
print(name_list)
#结果为:['赵', '钱', '孙', '李', '周', '吴', '郑', '王', 'f', 'u', 'a', 'b', 'c', 0, 1, 2]

三、删除列表元素的方法

▷pop()方法:

此方法是用来删除列表中的一个指定索引位置所对应的值,然后返回被删除的对象,参数为索引值,默认删除列表种最后一个元素,如下:

 name_list = ['赵','钱','孙','李','周',]
name_list.pop()
name_list.pop()
name_print(list)
结果为['赵', '钱', '李']

▷remove()方法:

此方法是用来删除列表中一个指定元素,参数就是指定元素(如果找不到则会报错),如下:

 name_list = ['赵','钱','孙','李','周',]
name_list.remove('孙')
print(name_list)
# 结果为:['赵', '钱', '李', '周']
#注意:移除之前得确保列表中有指定的值,否则会报错

▷clear()方法:

此方法是用来清空列表中所有的值(原有的列表就变成一个空列表了),如:

 name_list = ['赵','钱','孙','李','周',]
name_list.clear()
print(name_list)
# 结果为 []

▷ del 方法:

此方法用来删除整个列表(删除之后此列表就不存在了)

 name_list = ['赵','钱','孙','李','周',]
del name_list
print(name_list)
# 报错:NameError: name 'name_list' is not defined

四、修改列表元素的方法

修改元素的方法用索引以及切片的方法,如:

▷ 索引:

list_name[0] = '修改后的值'

▷ 切片:

list_name[0:3] = [a,b,c]   

注意:后面需要修改的值的总数可以不与切片的长度相对应,比如说[0:3]这个切片长度为3,后面可以传一个有2个或者4个元素的列表,此时,只是将切片所对应的值剔除,然后将后面列表依次插入

后面也可以赋值一个字符串,此时,只是将切片所对应的值剔除,然后将后面字符串拆开然后依次插入

list_name[0:3] = 'fuyong'

name_list = ['赵','钱','孙','李','周',]
name_list[2]= 'sun'
print(name_list)
#结果为:['赵', '钱', 'sun', '李', '周'] name_list[2]= name_list[2].title()
print(name_list)
# 结果为:['赵', '钱', 'Sun', '李', '周'] name_list[0:2] = ['zhao','qian']
print(name_list)
#结果为:['zhao', 'qian', 'Sun', '李', '周'] name_list[0:2] = ['zhao','qian','zheng']
print(name_list)
#结果为:['zhao', 'qian', 'zheng', 'Sun', '李', '周'] name_list[0:2] = ['zhao']
print(name_list)
#结果为:['zhao', 'zheng', 'Sun', '李', '周'] name_list[0:3] = 'fuyong'
print(name_list)
#结果为:['f', 'u', 'y', 'o', 'n', 'g', '李', '周']

五、查询列表元素的方法

查询元素的方法用索引以及切片的方法,如:

▷ 索引:

list_name[0] 

▷ 切片:

list_name[0:3]

list_name[0:3:2] 

 name_list = ['赵','钱','孙','李','周',]
print(name_list[]) # 赵
print(name_list[]) # 孙 print(name_list[:]) # ['赵', '钱']
print(name_list[:]) # ['钱', '孙', '李', '周'] print(name_list[::]) # ['赵', '孙']
print(name_list[::]) # ['赵', '孙'] print(name_list[::-]) #['周', '李', '孙', '钱']
print(name_list[-::-]) #['李', '孙', '钱']

另外,如果需要查询列表中所有的元素,可以用for循环来实现,如:

 name_list = ['赵','钱','孙','李','周',]
for name in name_list:
print(name) '''
输出结果如下:

  赵
  钱
  孙
  李
  周

 '''

六、列表的其他方法

▷ len(list)方法:

此方法可以用来计算列表的长度,如下:

 name_list = ['赵','钱','孙','李','周',]
print(len(name_list))
#输出结果为5

▷count()方法:

此方法用来计算列表中一个元素出现的次数,如下:

 name_list = ['赵','钱','孙','李','周','赵']
print(name_list.count('赵'))
# 输出结果为2

 ▷sort()方法:

次方法是对列表进行排序(列表里的元素要为数字类型),默认是正序,可以指定倒序(reverse = True)

 num_list = [,,,,,,]
num_list.sort() #默认为正序排列
print(num_list)
#输出结果为:[, , , , , , ] num_list.sort(reverse=True) #指定reverse为True 则为倒序
print(num_list)
#输出结果为[, , , , , , ]

▷reverse():

此方法是将列表里所有元素进行翻转,注意,不是排序,是将所有元素倒过来 ,如:

 name_list = ['赵','钱','孙','李','周']
name_list.reverse()
print(name_list)
#结果为:['周', '李', '孙', '钱', '赵']

▷join()方法:

此方法用法与字符串的join方法一样,就是将列表里的元素用指定字符连接起来,字符可以是空格,可以是空字符,可以是下划线以及任意字符,如下:

 name_list = ['赵','钱','孙','李','周']
print('*'.join(name_list)) # 结果:赵*钱*孙*李*周
print(' '.join(name_list)) # 结果:赵 钱 孙 李 周
print(''.join(name_list)) # 结果:赵钱孙李周
print('__'.join(name_list)) # 结果:赵__钱__孙__李__周

注:可以利用这种方法将一个列表转为字符串格式

七、列表的嵌套

上面说过,列表里可以放一切元素,所以,当然也可以嵌套列表:

如果需要对列表里的列表进行增删改查,只需先索引到里面的列表,然后再进行操作即可,如下:

name_list = ['赵','钱','孙',['付','傅','符'],'李','周','赵']

print(name_list[3][1]) # 傅
print(name_list[3][0:2]) #['付', '傅'] name_list[3][1]= 'fu'
print(name_list)
# 结果为:['赵', '钱', '孙', ['付', 'fu', '符'], '李', '周', '赵'] name_list[3].pop(1)
print(name_list)
#结果为['赵', '钱', '孙', ['付', '符'], '李', '周', '赵'] name_list[3].remove('符')
print(name_list)
#结果为:['赵', '钱', '孙', ['付'], '李', '周', '赵']

强调:与字符串的方法不同,所有对列表操作的方法均会改变原有列表的值,而不是创建一个新的列表!!!

列表(List) 的增删改查及其他方法的更多相关文章

  1. Python笔记·第五章—— 列表(List) 的增删改查及其他方法

    一.列表的简介   列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = ...

  2. 列表(索引切片 增删改查 嵌套) range 元组的初识

    li = ["alex", "WuSir", "ritian", "barry", "wenzhou" ...

  3. 用DBContext (EF) 实现通用增删改查的REST方法

    我们用ADO.NET Entity Data Model来生成实体类后,一般都会对这些类进行基本的增删改查操作,如果每个类都要写这些基本的方法,实在太乏味了.下面就是通过step by step的方式 ...

  4. hibernate实现增删改查的各种方法

    1>接口(主要是增删改查的接口)BaseDao.java /** * * @author fly.zhou */ public interface IBaseDao { //增加对应实体的一条记 ...

  5. linux的sed(增删改查)使用方法

    sed的增删改查的基本操作 参考:https://www.cnblogs.com/0zcl/p/6855740.html 01:增(a) 2个sed命令,分别是:(这些操作都是在内存中进行的,所以不会 ...

  6. 列表(List) 的增删改查及其他方法 和元组(tuple)的查

    一.列表 1.列表简介: 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li ...

  7. 总结day04 ---- 列表的切片,增删改查,以及,相关方法, 元祖的使用方法

    内容大纲 1 : 列表的索引 : 列表的切片 2 : 列表的增加内容 >1:append(char)  >2:insert(index,char) >3:extend('可迭代对象' ...

  8. 简单做了一个代办事项列表系统 ,增删改查。 前台页面用 jquery 后台用nodejs ,数据库用的是mongdoDB 。

    引入npm 第三方mongoose包连接mongoDb本地数据库todolist const mongoose = require('mongoose'); mongoose.connect('mon ...

  9. 字典 (dict) 的增删改查及其他方法

    一.字典 1.字典简介: 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无 ...

随机推荐

  1. C#画图消除锯齿

    using (Graphics g = this.CreateGraphics()) { g.SmoothingMode = SmoothingMode.HighQuality; //图片柔顺模式选择 ...

  2. Android 开发手记二 C可执行程序编译实例(转帖)

    http://www.cnblogs.com/gaozehua/archive/2011/09/02/2164077.html

  3. html获取js中的值

    1.在html中添加标签<span id="id"></span> 2.在js代码中往id的标签塞值就可以了:$("#id").text ...

  4. poj3680 Intervals 区间k覆盖问题 最小费用最大流 建图巧妙

    /** 题目:poj3680 Intervals 区间k覆盖问题 最小费用最大流 建图巧妙 链接:http://poj.org/problem?id=3680 题意:给定n个区间,每个区间(ai,bi ...

  5. Linux多条指令之间;和&&

    Linux 中经常使用到一个命令,如 make && make install,这里也可以使用 make ; make install,那么在 Linux 中执行命令 ; 和 & ...

  6. C++Primer学习笔记《2》

    数组是一种复合类型,由类型名+数组名+维度组成. 数组定义中的类型能够是C++基本内置类型.也能够是类类型的.数组元素的类型能够是除了引用类型以外的其它不论什么类型.没有全部的元素都是引用的数组. 数 ...

  7. redis info命令中各个参数的含义

    Redis 性能调优相关笔记 2016年09月25日 15:42:04 WenCoding 阅读数:4844更多 个人分类: Redis数据库   info可以使用info [类别]输出指定类别内容i ...

  8. android启动界面

    /**  * 应用程序启动类:显示欢迎界面并跳转到主界面  * <a href="http://my.oschina.net/arthor" target="_bl ...

  9. jsp时间格式化

    <fmt:formatDate value="${start.time }" pattern="HH:mm" />

  10. UFLDL深度学习笔记 (二)SoftMax 回归(矩阵化推导)

    UFLDL深度学习笔记 (二)Softmax 回归 本文为学习"UFLDL Softmax回归"的笔记与代码实现,文中略过了对代价函数求偏导的过程,本篇笔记主要补充求偏导步骤的详细 ...