Python_004(列表和元组)
一.列表
1. 列表:
列表的创建:li = [],列表中可以放置字符串,元组,列表,字典,列表等各种数据类型,32位的Python可以存放2^32个数据
2. 列表的索引和切片
列表的索引:格式lst = [元素,元素....元素] print(lst[index])index是对应列表中元素的下标,切记index从0开始;
代码展示:
lst = ["周杰伦", "王力宏", "周润发","成龙","李连杰"]
lst[1] = "周星驰"
print(lst)
#输出 ["周杰伦", "周星驰", "周润发","成龙","李连杰"] #这里赋值的变量可以为其他类型变量,列表,元组,字典都可以
lst = ["周杰伦", "王力宏", "周润发","成龙","李连杰"]
lst[1] = 1
print(lst)
#输出 ["周杰伦", 1, "周润发","成龙","李连杰"]
list列表赋值
列表的切片:和字符串一样,格式为[起始位置:结束位置:步长默认为1时]
代码展示:
lst = ["马化腾","王江林","太白", "五色", "银王", "日天"]
lst[1:3] = "马化腾" # 迭代修改(深坑请留意)
print(lst)
#输出结果:['马化腾', '马', '化', '腾', '五色', '银王', '日天'] lst = ["马化腾","王江林","太白", "五色", "银王", "日天"]
lst[1:3] = ["马化腾"] # 这里马化腾才会整体添加到列表中
print(lst)
#输出结果:['马化腾', '马化腾', '五色', '银王', '日天']
列表切片修改
列表的切片:[]步长不为1时
代码展示:
lst = ["马化腾","王江林","太白", "五色", "银王", "日天"]
lst[::2] = ["周杰伦", "他媳妇"] # 这里是两个元素
print(lst)
#输出结果:
lst[::2] = ["周杰伦", "他媳妇"] # 迭代修改
ValueError: attempt to assign sequence of size 2 to extended slice of size 3
报错:因为你步长截取了三个元素,而你替换的只有两个元素,所以会报错! lst = ["马化腾","王江林","太白", "五色", "银王", "日天"]
lst[::2] = ["周杰伦", "他媳妇", "王力宏媳妇"] # 这里是三个元素
print(lst)
#输出结果:['周杰伦', '王江林', '他媳妇', '五色', '王力宏媳妇', '日天']
所以不管你替换的什么,替换的元素个数跟步长截取的个数一致!
例如:lst[::2] = 112,222,333
st[::2] = "sdt"
st[::2] = "fkd","fd","d"
st[::2] = 1,2,3
st[::2] = None.None,None
步长不为1修改列表
3. 列表的其他操作
lst.sort()排序,默认时候升序,一般对数字好使,lst.sort(reverse = True)降序
lst.reverse()将列表翻转.
c = len(lst)列表的长度
4.列表的增删改查
增:
和字符串不一样,lst是可以发生改变的,所以直接在原来的对象上进行了操作
lst.append("元素")注意这里是自动添加到最后一位的;
lst.insert(index."元素")在index的位置添加元素,原来的元素向后移动一位;
lst.extend(元素)这里面元素可以是列表,元组,字典等,不能为数字,注意是迭代添加在末尾
删:
索引删除:list.pop(index)默认删除最后一个,这个是有返回值的,deleted = list.pop() deleted为被删除的元素
index为删除索引,你想要删除第几位,list.pop(index - 1)
指定元素删除:list.remove(指定元素)删除指定元素,没有返回值,不用赋值,如果删除不存在的元素会报错!
切片删除:del lst[起始位置:结束位置:步长]步长默认为1,范围删除,若步长不为1,参考上述讲解!
改:
直接索引赋值修改,切片修改见上述2
查:
for c in lst: print(c) 这里相当于循环一次,列表中索引下标增加1找出元素赋值给c;
5.列表的嵌套
若列表中有嵌套列表:可以采用降维操作找到元素,
若元素为字符串,可以直接应用字符串的操作:
代码展示:
lst = [1, "太白", "wusir", ["麻花疼", ["可口可乐"], "王剑林"]]
lst[2] = lst[2].capitalize()
print(lst)
#输出结果:[1, '太白', 'Wusir', ['麻花疼', ['可口可乐'], '王剑林']] print(lst[3][1][0])
lst[3][1].append("芬达")
print(lst)
#输出结果:可口可乐
[1, '太白', 'Wusir', ['麻花疼', ['可口可乐', '芬达'], '王剑林']]
列表嵌套
元组:
跟列表相似,但是元组是只读文件,不可变,而子元素内部的子元素是可以变的,这取决于子元素是否是可变对象!
注意:这里有一个坑:如果你定义一个元组为:tul = (108)或者tul = ("string")前者是整形后者为字符串类型,
所以你定义的元组里的元素少于两个的话,就不是元组,只不过加了个扩号而已,定义格式为:tul = (108,)或者tul = ("string",);空元组格式为:tu = tuple();
6.range的应用
range可以帮我们获取一些数据,通过for循环能够获取这些数据
for sum in range(10): print(sum)默认是从0开始的,在这里表示从0到10,10取不到,跟切片索引是一样的,也有步长!
Python_004(列表和元组)的更多相关文章
- Python列表和元组
Python是没有数组的概念,但是和数组比较相近的概念是列表和元素. 下面两个例子展示列表和元组. # coding=utf-8 # 元组 students = ('小明', '小黄', '小李', ...
- Python黑帽编程2.3 字符串、列表、元组、字典和集合
Python黑帽编程2.3 字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...
- 第二天----列表、元组、字符串、算数运算、字典、while
列表 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 基本操作: 索引切片追加删除长度切片循环包含 创建.查看列表: 列表中的数字不要加引号,列表的索引从0开始: lis ...
- python:列表与元组
1.python包含六种内建的序列,列表和元组是其中的两种,列表可以修改,元组则不能 2.通用序列操作 2.1 索引:和C#的区别是索引可以为负数,最后一个元素索引为-1,索引超出范围会报错 例:&g ...
- python中列表,元组,字符串互相转换
列表,元组和字符串python中有三个内建函数:,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示 >>> s = "xxxxx& ...
- Python【2】-列表和元组
一.序列 python包含六种内建的序列:列表.元组.字符串.unicode字符串.buffer对象.xrange对象. 列表可以修改,元组是不能修改的. 二.列表 列表list是变长序列,其中的内容 ...
- python基础知识3——基本的数据类型2——列表,元组,字典,集合
磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 一.列表 1.列 ...
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- 基本数据类型-集合(set)_上周内容回顾(字符串_数字_列表_元组_字典_集合)
上周内容回顾 1.字符串 2.数字 除了布尔类型外,int.long.float和complex都可以使用的运算为:加.减.乘.除.整除.幂运算和取余 3.列表和元组 列表的内容可变,可以包含任意对象 ...
随机推荐
- sync_binlog innodb_flush_log_at_trx_commit 深入理解
innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数.本文从参数含义,性能,安全角度阐述两个参数为不同的 ...
- web 前端2 html css一些小问题技巧
html css一些小问题技巧 1 对于儿子块float后,父亲块如果没内容就不见了,如何让父亲块依然跟随飘起了的儿子块撑起来呢?? 用到的属性after方法 公共方法作为继承即可. 1.1 方法 ...
- (136)leetcode刷题Python笔记——只出现一次的数字
题目如下: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: ...
- linux 截取变量字符串
STR=123456abc FINAL=`echo ${STR: -1}` 或者 FINAL=${STR: -1} 都可以让FINAL获得c这个最后一个字符 Linux 的字符串截取很有用.有八种 ...
- MySQL-第十四篇事务管理
1.什么是事务 事务是由一步或者几步数据库操作序列组成的逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行. 2.事务具备的4个特性: 1>原子性(Atomicity):事务是应用中最小的执 ...
- Spark-Core RDD的创建
一.RDD创建的3种方式: 1.从集合中创建RDD 2.从外部存储创建RDD 3.从其他RDD转换得到新的RDD 二.从集合中创建RDD 1.使用parallelize函数创建 scala> v ...
- 到底如何设置 Java 线程池的大小?
来源:ifeve.com/how-to-calculate-threadpool-size/ 在我们日常业务开发过程中,或多或少都会用到并发的功能.那么在用到并发功能的过程中,就肯定会碰到下面这个问题 ...
- java 中断线程的几种方式 interrupt()
中断 中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作.线程是死亡.还是等待新的任务或是继续运行至下一步,就取决于这个程序.虽然初次看来它可能显 ...
- ORA-00911: invalid character 错误解决
多数情况如下: 控制面板--系统和安全---系统--高级系统设置--高级--环境变量--系统变量中 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK ...
- MiniUI学习笔记1-新手必读
1.mini的全局方法 2.Ajax jQuery 拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 详细jQuery Ajax教程,可参考这里. 3. ...