list列表

list:一个有序的集合

创建列表

语法格式: 列表名 = [元素1, 元素2, 元素3…….,元素n]

注:列表中的元素⽤逗号隔开。

注:列表⾥⾯的元素可以是不同类型的数据。

列表元素访问

1、取值:语法格式: 列表名[下标]

• 注:数组取值时,下标不能越界 •

2、替换元素:语法格式: 列表名[下标] = 新值

list5 = [1, 2, 3, 4]
# 1取值:格式 列表名称[下标] 下标从0开始
# 下标不可越界 最后一个元素下标为 列表长度-1 len(list)-1
print(list5[2])
# print(list5[6]) #IndexError: list index out of range # 2取值:从右向左取
# 下标为-1 获取最后一个元素 同样不能越界
print(list5[-1]) # 3替换元素
# 格式:列表名称[下标]=新值
list5[1] = 200
print(list5)

列表的操作

# 1 列表组合 +
list6 = [1, 2, 3]
list7 = [1, 2, 4, 5]
print(list6 + list7)
# 2列表的重复
list8 = [1]
print(list8 * 10) # 3判断某个元素是否存在列表
# in not in
print(5 in list7) # 4列表的截取
# 语法:列表名称[[起始下标]:[结束下标]:[递增基数]]
list9 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 4.1 从0开始截取,截取到数字6
print(list9[:7]) # 从0开始截取,截取到数字6
print(list9[3:]) # 从3截取到末尾
print(list9[:]) # 截取所有
print(list9[3:7]) # 范围
print(list9[::-1]) # 倒序
print(list9[::2]) # 隔一个截取一个

列表的增删改查

list.append(obj)   在列表后添加一个新元素,obj可以是任意类型数据

list.extend(item)  在列表后添加新的元素,将item中的元素分开添加,item 必须是集合类型的元素

list.insert(index,obj)  在列表指定位置添加元素    注:index 下标越界,则在最后位置添加元素

list.pop([index])   删除指定下标的元素    若不指定下标,则默认删除最后一个元素

list.clear()      清空列表中的元素

list.remove(item)    删除item在列表中匹配到的第一个元素

list.index(obj,[start,end])   obj是否在列表中存在,若存在则返回第一次匹配到的小标,如果不存在则返回错误valueError 。   [start,end]为范围查找

obj  in   list     或   obj  not in list  列表中是否存在某元素

len(list)   返回list的长度

max(list)  返回最大值

min(list)  返回最小值

list.count(obj)   返回obj在list中出现的次数

list.sort([reverse])     排序     reverse 默认  false   正序      true     反序

list[ : :-1]   , list.reverse()     列表翻转(两种方式)

# 四 数据的操作 ---增删改查
# 1 增-- 增加数据
list10 = [1, 2, 3, 4]
print(list10)
# 1.1 list.append(obj)在列表后面添加一个新的元素,obj可以是任意类型数据
list10.append("asfd")
print(list10) # 1.2 list.extend(iter) 在列表后面添加新的元素,将iter中的元素分开添加
# 注;iter 必须 是集合类型的元素 print('------------------------------')
list11 = [1, 2, 3]
print(list11)
list11.extend("abcd")
print(list11)
list11.extend([11, 112])
print(list11) # 1.3 list.insert(index,obj) 在指定的index位置上添加新的obj元素
# 不会覆盖该位置原来的元素,原数据在index上的及之后的袁术下标依次向后顺移
list12 = [1, 2, 3, 4]
list12.insert(2, 44)
print(list12)
list12.insert(6, 2344)
# 如果新增数据的下标越界,会在列表后添加新的元素
print(list12) # 2 改 ---更改数据 更新数据
# 语法格式:列表名称【index】=新值
list5[1] = 200
print(list5) # 3 删--- 删除数据
# 3.1 list.pop([index]) 移除指定index位置的元素
# 当不指定index的值时,默认删除最后一个值
list13 = [1, 2, 3, 4]
list13.pop()
print(list13)
list13.pop(2)
print(list13) # 3.2 list.clear() 清空列表中的元素
list14 = [1, 2, 3, 4, 5]
list14.clear()
print(list14) # 3.3 list.remove(item) 移除列表中匹配到第一个的item的元素
list15 = [1, 2, 2, 3, 3, 4, 4, 3, 5, 56]
list15.remove(1)
print(list15)
list15.remove(3)
print(list15) # 查--- 查询元素
# 1.列表中是否存在某个元素 in not in
# 2.列表中是否存在一个元素 index
# list.index(obj,[start,end]) 如果存在,返回第一次匹配到的下标,
# 如果不存在,返回错误valueError
list15 = [1, 2, 2, 3, 3, 4, 4, 3, 5, 56]
print(list15.index(1))
print(list15.index(2))
print(list15.index(4, 6, 8)) # 五、列表其他操作
list15 = [121, 23, 34, 35, 54, 4]
# 1.获取列表长度
print(len(list15))
# 2.返回列表中最大的元素
print(max(list15))
# 3.返回列表中最小的元素
print(min(list15))
# 4.列表翻转 改变原来的列表
list1 = [1, 2, 3, 4]
list1.reverse()
print(list1) print(list1[::-1]) # 返回一个新的列表,不会改变原来的列表 # 5 list1.count(obj) 返回元素obj在列表中的个数
list1 = [12, 2, 33, 4, 4, 6, 5, 4, 44]
print(list1.count(4)) # 6.list.sort() 列表排序,默认正序
# reverse 默认false 正序; 如果为true ,倒序
list1 = [12, 2, 33, 4, 4, 6, 5, 4, 44]
list1.sort(reverse=True)
print(list1) # 7 拷贝
# 浅拷贝:表面上增加了一个变量名称,但内存地址使用被拷贝的地址
print('------------')
list100 = [1, 2, 2, 12]
listCopy = list100
print(list100)
print(listCopy)
print(id(list100))
print(id(listCopy))
list100[0] = 100
print(list100)
print(listCopy)
# 深拷贝 返回一个新的列表,内存地址与原来的列表不一样
list200 = [1, 2, 2, 12, 444]
listNew = list200.copy()
print(id(list200))
print(id(listCopy)) # 拷贝模块
import copy a = [1, 1, 33, [1, 2, 5]]
b = copy.copy(a)
c = copy.deepcopy(a) # 真正的深拷贝
print(id(a))
print(id(b))
print(id(c))
print('**********************')
print(id(a[3]))
print(id(b[3]))
print(id(c[3]))

list列表的更多相关文章

  1. ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单

    前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...

  2. ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...

  3. ASP.NET Aries 入门开发教程3:开发一个列表页面及操控查询区

    前言: Aries框架毕竟是开发框架,所以重点还是要写代码的,这样开发人员才不会失业,哈. 步骤1:新建html 建一个Html,主要有三步: 1:引入Aries.Loader.js 2:弄一个tab ...

  4. ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面

    前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...

  5. 散列表(hash table)——算法导论(13)

    1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...

  6. Python列表去重

    标题有语病,其实是这样的: 假设有两个列表 : L1 = [1,2,3,4] ; L2 = [1,2,5,6] 然后去掉L1中包含的L2的元素 直接这样当然是不行的: def removeExists ...

  7. WPF 微信 MVVM 【续】修复部分用户无法获取列表

    看过我WPF 微信 MVVM这篇文章的朋友,应该知道我里面提到了我有一个小号是无法获取列表的,始终也没找到原因. 前两天经过GitHub上h4dex大神的指导,知道了原因,是因为微信在登录以后,web ...

  8. Emoji选项列表

    一.需要的前提文件 从网上下载Emoji的表情包,当然是png的图片,因为WPF不支持彩色的Emoji,所以,做列表的时候,需要用图片. 随着压缩包一起的还有一个Emoji.xml文件,文件的层级结构 ...

  9. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  10. 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

    在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...

随机推荐

  1. MySql通过Data恢复数据库数据

    公司的服务器开不了机,把硬盘装在其他机器上面,文件是没有丢失,可是数据库开不了了.上网查了下,用DATA恢复了数据. 1.先通过MYSQL目录下的my.ini配置文件找到 datadir的文件夹地址. ...

  2. Spring学习随笔(1):为什么要使用Spring

    寒冷的冬天,一周两节课,掏出买了一年没翻过的<Spring实战>. 刚刚接触spring的我对它还不是很熟悉,对各种知识的认知也比较浅薄,但我会学习的过程通过随笔记录下来,监督自己学下去. ...

  3. javaSE集合---进度2

    一.集合框架 1.特点 对象封装数据,对象多了也需要存储,集合用于存储对象. 对象的个数确定可以使用数组,但是不确定的话,可以用集合,因为集合是可变长度的. 2.集合和数组的区别 数组是固定长度的,集 ...

  4. M有SQL删除数据库提示Error dropping database (can't rmdir './db_test', errno: 39)

    1.执行ps aux | grep mysql,查看mysql的data目录,比如结果是--datadir=/var/lib/mysql.2.进入data目录,删除以该数据库为名字的文件夹.cd /v ...

  5. Java 方法与数组

    方法 什么是方法? 方法定义:方法(Method),函数(function),其实就指一个特定的功能操作,程序中完成独立功能,可重复使用的一段代码的集合. 方法的定义 方法定义格式: [修饰符] 返回 ...

  6. Linux中 mv(文件移动)

    mv命令的功能有以下两种: source target mv 参数1 参数2 1.对文件或目录重新命名 如果源文件和目标文件在同一个目录下,mv的作用就是改文件名. 2.将文件从一个目录移到另一个目录 ...

  7. 二维背包---P1855 榨取kkksc03

    P1855 榨取kkksc03 题解 二维背包板子题 f[ i ][ j ] 前 n 个物品,花费金钱不超过 i ,花费时间不超过 j 的最大价值 如果每个物品只能选一次,那么就相当于在01背包上多加 ...

  8. C#-片段-插入片段:测试

    ylbtech-C#-片段-插入片段:测试 using Microsoft.VisualStudio.TestTools.UnitTesting; 1.返回顶部 ·测试方法 [Microsoft.Vi ...

  9. List&Set

    List a.普通for循环, 使用get()逐个获取 b.调用iterator()方法得到Iterator, 使用hasNext()和next()方法 c.增强for循环, 只要可以使用Iterat ...

  10. lua日期处理函数

    function day_step(old_day,step)    local y,m,d   if("0" ~= string.sub(old_day,6,6)) then   ...