初学Python—列表和元组
一、什么是列表
列表是一系列数据的集合
二、列表的引用
首先定义一个列表
names=["alex","bob","alice","jim"]
列表引用:
name[0]
name[1]
print(name[3])
三、列表操作
1.查询列表元素
①利用下标输出列表元素
print(names[0]) #输出列表第一个元素
print(names[0:5]) #输出列表前五个元素(顾头不顾尾)
print(names[-1]) #输出列表最后一个元素
print(names[-4:-1])#输出列表倒数第四个至倒数第二个元素的值(顾头不顾尾)
print(names[-3:0])#输出列表最后三个元素
print(nemas[::3]) #从第一个元素开始,每三个元素输出一个(隔两个元素输出一个元素)
②查找元素所在位置:index方法
print(names.index("alex")) #查找元素“alex”的下标,输出为0
③统计相同元素的个数:count方法
print(names.count("alex")) #输出“alex”元素的个数
2.增添列表元素
有两种方法,一是append()方法,插入列表末尾;二是insert()方法,可以插入特定的位置
names.append("luxun") #将元素插入列表的末尾
names.insert(2,"mayun") #将元素插入列表下角标为2的位置
3.修改列表元素
names[1]="lihua" #将第二个元素修改
4.删除列表元素
有三种方法
①用“del”,此关键字不是列表特有的,可以用来删除变量、列表、字典等。
del names[4] #删除下标为4的元素
②pop()方法,根据下标删除元素
names.pop(5) #删除下标为5的元素,如果括号空着,默认删除最后一个元素
③remove()方法,根据元素内容删除
names.remove("alex") #删除此元素
5.合并列表
extend()方法
list1=[1,2,3]
list2=[4,5,6]
list1.extand(list2) #将list2列表合并到list1上
此方法只会改变list1,list2并不改变
6.列表嵌套
names=["zhao","qian","sun",["zhang","liu","ma"],"li"]
#取出“liu”
print(names[3][1])
增删改查同上
7.列表的复制
这里详细介绍三种
①copy()方法:浅copy
先看形式
names=["zhao","qian","sun",["zhang","liu","ma"],"li"]
names2=names.copy() #将names复制一份给了names2
print(names2,names)
输出完全一样,没问题
继续操作:
names[1]="QIAN"
names[3][2]="MA"
print(names,names2)
看清楚了,所有的操作是对names的,names2的元素会保持不变吗?来看结果
发现了什么?names肯定是按照我们的操作变化了,names2呢?既没有保持不变,也没有完全跟names保持同步
而是:外层的列表元素不受影响,内层列表元素跟着改变。这就是浅copy
②copy.deepcopy()方法,引入copy模块:深copy
import copy
names=["zhao","qian","sun",["zhang","liu","ma"],"li"]
names2=copy.deepcopy(names) #将names深copy一份给了names2
print(names2,names)
同样的操作
names[1]="QIAN"
names[3][2]="MA"
print("names:",names)
print("names2:",names2)
结果奉上:
深copy出来的names2是完全独立于names的,相互之间不受干扰。
③类似于赋值操作的复制
names2=names #直接将其赋值给names2
进行上述操作后,结果如下
无论对谁进行操作,两者的内容保持同步和一致
8.列表排序
①列表反转:severse()方法
names.severse() #将列表反转
print(names)
②列表排序:sort()方法
naems.sort() #将列表排序
print(names)
排序规则:按照每个字符串首位,特殊符号>数字>大写字母>小写字母,前提是数据类型是字符型。
注意:不同的数据类型无法排序!
9.列表循环
推荐用for循环
for i names:
print(i)
10.清空列表、删除列表
清空列表用clear()方法
names.clear()
删除列表用 del
del names
10.获取列表长度
①names._len_()方法
②len(names)函数
都是获取列表中元素的个数
四、元组
元组就是只读列表
定义一个元组:
names=(1,2,3,4,5)
只能对它进行查询访问,不能增、删、改。当然,可以删除整个元组,即
del names
初学Python—列表和元组的更多相关文章
- Python列表、元组、字典和字符串的常用函数
Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...
- python列表与元组的用法
python列表与元组的用法 目录: 列表的用法: 1.增 append + extend 2.删 del remove 3.改 insert 4.查 index 5.反向 ...
- (转)python 列表与元组的操作简介
python 列表与元组的操作简介 原文:https://www.cnblogs.com/QG-whz/p/4782809.html 阅读目录 列表 list函数 列表的基本操作 列表方法 元组 tu ...
- Python列表和元组
Python是没有数组的概念,但是和数组比较相近的概念是列表和元素. 下面两个例子展示列表和元组. # coding=utf-8 # 元组 students = ('小明', '小黄', '小李', ...
- 认识Python 列表和元组
列表用方括号 l=[['xyz',123], 'abc', 3140000000.0, (23+1.3j), 'ddd'] 元组用圆括号 t=(['xyz', 123],'abc', 3140 ...
- #9 Python列表和元组
前言 Python中有6种序列:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.序列通用操作包括:索引.切片.长度.加.乘.最大值.最小值,遍历和检查成员.虽然Pytho ...
- Python: 列表,元组,字典的区别
Python中有3种内建的数据结构:列表,元组和字典 1.列表 list是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中项目应该包括在方括号中,这样python就知道是在指明 ...
- [python01] python列表,元组对比Erlang的区别总结
数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字,字符,甚至可以是其他的数据结构. python最基本的数据结构是sequence(序列):6种内建的序列:列表,元组,字符串, ...
- python 列表,元组,字符串方法和属性
python序列包含列表[].元组().字符串三种 -------列表-------------- 一.列表基本内容 1.建立:a=[1,2,3,5],通过[ , ,], >>>b= ...
随机推荐
- es6 语法 (map、set和array 的对比)
//数据结构对比 增查改删 { //map和array对比 let map = new Map(); let array = []; //增 map.set('t',1); array.push({t ...
- 苹果手机怎么屏幕录屏 ios10怎么录屏
手机录屏已经现阶段经常使用的功能,有些人喜欢在手机上看视频,看直播.但是有时候看到很精彩的视频,就想要录制下来,这个时候可以采取录屏的方式.那么就涉及到手机怎么录制屏幕视频了?想用苹果手机把手机屏幕录 ...
- Android Studio多渠道打包(一)
1. 多渠道的概念 APP发布到不同的应用平台,监测用户是从哪个平台安装的. 2. 为什么要多渠道打包 统计用户安装APP来源 批量修改生成的apk文件名 可更改包名 生成不同应用名称或图标 3.多渠 ...
- Android自定义多宫格解锁控件
在此之前,一直在想九宫格的实现方法,经过一个上午的初步研究终于完成了一个简单的N*N的宫格解锁组件,代码略显粗糙,仅仅做到简单的实现,界面等后期在做优化,纯粹是学习的目的,在算法上有点缺陷,如果有错误 ...
- (网页)input框怎么覆盖掉数字英文的
例子1: <input type="text" value="0" onkeyup="cleartwoNum(this)"> / ...
- Unity网页游戏
Unity网页游戏是跑在浏览器的UnityWebPlayer插件中的,运行的模式是webplayer.unity3d+html 在嵌入UnityWebPlayer的网页中会调用UnityObject2 ...
- Spark性能优化【Stack Overflow】
一.异常情况 Stack Overflow 二.异常分析 之所以会产生Stack Overflow,原因是在Stack方法栈中方法的调用链条太长的原因导致的,一般情况有两种: 1.过于深度的递归[常见 ...
- SQL Server Alert发送告警邮件少了的原因
最近突然发现我们部署在数据库上面的告警(Alert),当错误日志里面出现错误时,并不是每个错误日志都会发送邮件出来.如下所示,设置了告警"SQL Server Severity Event ...
- Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法
#在数据库的命令行中输入以下代码即可解决,密码必须要修改 可以再次执行将密码改回来. use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH ...
- oracle 压力测试工具benchmarksql
TPC-C测试 TPC-C 于 1992 年 7 月 23 日认可为新的基准测试.TPC(Transaction Processing Performance Council,事务处理性能委员会)-C ...