一、列表

列表(list)是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

作用:多个装备,多个爱好,多门课程,多个女朋友等

定义:[ ]内可以有多个任意类型的值,逗号分隔

定义列表:name = [ ]   #name等于中括号就是定义列表

列表用来存储数据的

1、基本操作

列表的添加

append

追加,在列表的尾部加入指定的元素

insert

将指定的元素插入到对应的索引位上,注意负索引

列表的删除

pop

弹出,返回并删除指定索引位上的数据,默认删除索引为-1的数据(相当于剪切)

remove

从左往右删除一个指定的元素

del

删除整个列表或列表的数据,del是python内置功能,不是列表独有的

列表的查找

注:列表没有find方法

count

计数,返回要计数的元素在列表当中的个数

index

查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错

列表的排序

reverse

顺序倒序

sort

按照ascii码表顺序进行排序

2、定义列表

name = ['tom','jack','ren','yan']
print(type(name))
-------------------------------------------------
<class 'list'>

3、遍历列表

name = ['tom','jack','ren','yan']
for i in name:
print(i)
-------------------------------------
tom
jack
ren
yan
---------------------------------------------------
#通过下标访问
print(name[0])
print(name[3])
--------------------------------
tom
yan

4、切片:取多个元素

name = ['tom','jack','ren','yan','zhong','qq','weixin']
print(name[0:3])  #取下标0至3之间的元素,包含0,不包含3
print(name[:3])  
print(name[:-1])  #取下标0至最后一个的元素,包含0,不包含-1
print(name[4:])
print(name[::2])  #2表示每隔一个元素,就取一个
print(name[0:4:2])  #在0到4之间每隔一个元素取一个
------------------------------------------------------------
['tom', 'jack', 'ren']
['tom', 'jack', 'ren']
['tom', 'jack', 'ren', 'yan', 'zhong', 'qq']
['zhong', 'qq', 'weixin']
['tom', 'ren', 'zhong', 'weixin']
['tom', 'ren']

5、追加

name = ['tom','jack','ren','yan']
print(name)
name.append('我是新来的')  #在列表的尾部加入指定的元素
print(name)
-------------------------------------------------------------
['tom', 'jack', 'ren', 'yan']
['tom', 'jack', 'ren', 'yan', '我是新来的']

6、插入

name = ['tom','jack','ren','yan']
print(name)
name.insert(1,'插队的')  #插入到索引1位置
print(name)
---------------------------------------------
['tom', 'jack', 'ren', 'yan']
['tom', '插队的', 'jack', 'ren', 'yan']

7、修改

name = ['tom','jack','ren','yan']
print(name)
name[1] = '该换人了'
print(name)
-------------------------------------------------
['tom', 'jack', 'ren', 'yan']
['tom', '该换人了', 'ren', 'yan']

8、删除

name = ['tom','jack','ren','yan','zhong','hello','go','python']
del name[0]  #删除索引为0的指定元素
print(name)  #tom已删除
print(name.pop(0))  #输出要剪切的指定元素(知道索引,不知道内容)
print(name)  #Jack已删除
print(name.pop())  #pop默认删除最后一个元素
print(name)
print(name.remove('ren'))  #删除指定元素,且不输出(知道内容不知道索引)
print(name)
---------------------------------------------------------
['jack', 'ren', 'yan', 'zhong', 'hello', 'go', 'python']
jack
['ren', 'yan', 'zhong', 'hello', 'go', 'python']
python
['ren', 'yan', 'zhong', 'hello', 'go']
None
['yan', 'zhong', 'hello', 'go']

9、扩展

name = ['tom','jack','ren','yan','zhong']
languages = ['pyhon','go','C#','PHP']
name.extend(languages)
print(name)
--------------------------------------------
['tom', 'jack', 'ren', 'yan', 'zhong', 'pyhon', 'go', 'C#', 'PHP']

10、拷贝

name = ['tom','jack','ren','yan','zhong']
name_copy = name.copy()
print(name_copy)
--------------------------------------------------
['tom', 'jack', 'ren', 'yan', 'zhong']

11、统计

name = ['tom','ren','ren','yan','zhong']
print(name.count('ren'))
----------------------------------------------------
2

12、排序&翻转

name = ['tom','ren','ren','yan','zhong','alex',1,12,2,3,23]
name.sort() #不同字符类型不能放在一起排序
print(name)
-------------------------------------
Traceback (most recent call last):
File "C:/Users/renyz02/Desktop/py_test1/20190911/list.py", line 76, in <module>
name.sort()
TypeError: '<' not supported between instances of 'int' and 'str'
name = ['tom','ren','ren','yan','zhong','alex']
print(name)
name.sort()  #排序(字母按照ASCII码,数字从小到大)
print(name)
name.reverse()  #反转原来的顺序(数字、字母同理)
print(name)
-----------------------------------------------------
['tom', 'ren', 'ren', 'yan', 'zhong', 'alex']
['alex', 'ren', 'ren', 'tom', 'yan', 'zhong']
['zhong', 'yan', 'tom', 'ren', 'ren', 'alex']
----------------------------------------------------------------
name = ['tom','ren','ren','yan','zhong','alex']
print(name)
# name.sort()
# print(name)
name.reverse()
print(name)
--------------------------------------------------
['tom', 'ren', 'ren', 'yan', 'zhong', 'alex']
['alex', 'zhong', 'yan', 'ren', 'ren', 'tom']

13、获取下标

name = ['tom','ren','ren','yan','zhong','alex']
print(name.index('yan'))
---------------------------------------------------
3

二、元组

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

元组特点:是不可变

定义:与列表类型比,只不过[  ]换成() ,如:age=(11,22,33,44,55)

作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的)

元组的查找

index

从左往右返回第一个遇到的指定元素的索引,如果没有,报错

count

返回元组当中指定元素的个数

1、创建元组

num = (11,22,33,44)
print(type(num))
print(num)
----------------------------------------------
<class 'tuple'>
(11, 22, 33, 44)

定义一个空的tuple,可以写成():

num2 = ()
print(type(num2))
--------------------------------------------
<class 'tuple'>

但是,如果定义一个只有一个元素的tuple,需要加,:

num3 = (22)
print(type(num3))
num4 = (22,)
print(type(num4))
-----------------------------------------------------------
<class 'int'>
<class 'tuple'>

2、访问元组

num = (11,22,33,44)
print(num)
print(num[2])
-----------------------------------------
(11, 22, 33, 44)
33
num = (11,22,33,44)
print(num)
print(num.index(44))  #取索引
print(num.count(22))  #计数
-------------------------------------------------
(11, 22, 33, 44)
3
1

3、修改元组

说明:Python中不允许修改元组的数据,包括不能删除其中的元素。

元组是不可变的,也就是说,元组中的元素在被赋值后不能改变。但是,如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变。

aa = (1,2,[11,22,33])
print(id(2))  #查看id
aa[2][0] = 44
print(aa)
print(id(2))  #id是一致的
--------------------------------------------------------
140730237805232
(1, 2, [44, 22, 33])
140730237805232

4、多维元祖访问

person = (("刘备","关羽","张飞"),("曹操","典韦"),("孙权","周瑜"))
print(person[2])
print(person[0][0])
-----------------------------------------------------
('孙权', '周瑜')
刘备

python基础之列表、元组的更多相关文章

  1. python基础(五)列表,元组,集合

    列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...

  2. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  3. python基础之列表list元组tuple

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...

  4. python基础数据类型--列表(list)

    python基础数据类型--列表(list) 列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增.删.改.查等操作 一列表的增.删.改.查 1增: 1.1增加到最后   append ...

  5. python基础4 列表和元组

    一. 列表列表:python基础数据类型之一:其他语言中也有列表的概念,js 数组,可索引,可切片,可加步长li = ['hello', 100, True, [1, 2, 3], {'name':' ...

  6. Python入门基础学习(列表/元组/字典/集合)

    Python基础学习笔记(二) 列表list---[ ](打了激素的数组,可以放入混合类型) list1 = [1,2,'请多指教',0.5] 公共的功能: len(list1) #/获取元素 lis ...

  7. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  8. python基础之列表、字典、元祖等 (二)

    一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...

  9. python基础之列表讲解

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 如下图所示,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可.(接下来的演 ...

  10. Python - 基础数据类型 tuple 元组

    元组简单介绍 元组是一个和列表和相似的数据类型,也是一个有序序列 两者拥有着基本相同的特性,但是也有很多不同的地方 声明元组 var = (1, 2, 3) var = ("1", ...

随机推荐

  1. oo第四单元暨课程总结

    第四单元架构设计总结 第一次作业 单独写了MyUmlClass.MyUmlInterface.MyUmlOperation三个类对应UML中相应元素,在UML图中这几个元素包含一些下级元素,如Clas ...

  2. 02.ElementUI源码学习:babel配置

    书接上文,接下来项目将引入babel支持ES6+语法兼容. Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行 ...

  3. 我自横刀向天笑,手写Spring IOC容器,快来Look Look!

    目录 IOC分析 IOC是什么 IOC能够带来什么好处 IOC容器是做什么工作的 IOC容器是否是工厂模式的实例 IOC设计实现 设计IOC需要什么 定义接口 一:Bean工厂接口 二:Bean定义的 ...

  4. Day07_37_深度剖析集合中的contains()方法

    深度剖析集合中的 contains()方法 contains()方法查找集合中是否包含某个元素 contains() 底层使用的是 equals()方法 当contains()方法拿到一个对象的时候, ...

  5. adb 简介与常用命令

    1. abd 简介 2. adb 常用命令 1. abd 简介 adb 的全称为 Android Debug Bridge,就是起到调试桥的作用. 借助 adb 工具,我们可以管理设备或手机模拟器的状 ...

  6. Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本

    Nacos持久化Mysql8.0版本 有关Nacos之前写过三篇文章. Spring Cloud Alibaba(3)---Nacos概述 Spring Cloud Alibaba(4)---Naco ...

  7. html书签展示(带搜索)

    源代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title ...

  8. form表单验证提交

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 获取中断描述符表IDT的信息

    <pre name="code" class="cpp">//GetIDT.h文件 #ifndef _WIN32_WINNT // Allow us ...

  10. POJ1548最小路径覆盖

    题意:       给你一个DAG,然后问你最少多少条路径能覆盖所有需要覆盖的点. 思路:       最小路径覆盖,太明显了,每个点向它右下方的点连边,然后...没啥难的地方,不说了. #inclu ...