列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或 所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。 鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如names)是个不错的主意。

列表非常适合利用顺序和位置定位某一元素,尤其是当元素的顺序或内容经常发生改变时。与字符串不同,列表是可变的。你可以直接对原始列表进行修改:添加新元素、删除 或覆盖已有元素。在列表中,具有相同值的元素允许出现多次。

1.1常用列表方法

#使用 dir(list) ,查看列表的内置方法:
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

1.1.1 append

#向列表末尾追加一个元素
>>> numbers = [1,2,2,3,3,3]
>>> numbers.append(4)
>>> numbers
[1, 2, 2, 3, 3, 3, 4]

1.1.2 clear

#清除一个列表中的所有元素
>>> n
[1, 2, 3, 4, 5] >>> n.clear() >>> n
[]

1.1.3 copy

#复制一个列表
>>> n = [1,2,3,4,5] >>> n.copy()
[1, 2, 3, 4, 5] >>> n.copy()
[1, 2, 3, 4, 5] >>> num = n.copy() >>> num
[1, 2, 3, 4, 5]

1.1.4 count

#计算某个元素在列表中出现的次数
>>> numbers
[1, 2, 2, 3, 3, 3, 4]
>>> numbers.count(1)
1
>>> numbers.count(2)
2
>>> numbers.count(3)
3
>>> numbers.count(4)
1

1.1.5 extend

#直接向列表末尾一次性追加另一个列表
>>> numbers
[1, 2, 2, 3, 3, 3, 4]
>>> a = [4,4,4]
>>> numbers.extend(a)
>>> numbers
[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
>>> a
[4, 4, 4]

1.1.6 insert

#将对象插入列表中
>>> numbers
[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
>>> numbers.insert(0,0)
>>> numbers
[0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4]

1.1.7 pop

#移除列表中的最后一个元素,默认是最后一个
>>> numbers
[0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
>>> numbers.pop()
4
>>> numbers
[0, 1, 2, 2, 3, 3, 3, 4, 4, 4]

1.1.8 remove

#默认移除列表中第一个匹配的元素
>>> num
[1, 2, 1, 3, 2]
>>> num.remove(1)
>>> num
[2, 1, 3, 2]
>>> num.remove(2)
>>> num
[1, 3, 2]

1.1.9 reverse

#将列表中的元素反向存放
>>> numbers
[0, 1, 2, 2, 3, 3, 3, 4, 4, 4]
>>> numbers.reverse()
>>> numbers
[4, 4, 4, 3, 3, 3, 2, 2, 1, 0]

1.1.10 sort

#########################################################
#对列表排序,这个我比较喜欢,里面挺多好玩的东西,下面做个简单的介绍#
#########################################################

#默认排序
>>> L = [1,4,3,2]
>>> L.sort()
>>> L
[1, 2, 3, 4] #自定义排序
#咱们先看看sort的使用方法
>>> L.sort.__doc__
'L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*' #根据提供的key函数为元素产生一个键,列表的元素按照这个键值来排序
>>> x = ['abc','a','bc','abcd']
>>> x.sort(key=len)
>>> x
['a', 'bc', 'abc', 'abcd’] #反向排序
>>> n = [3, 1, 2, 5]
>>> n.sort(reverse=True)
>>> n
[5, 3, 2, 1]

1.2 其他的几个方法

1.2.1 in

#使用 in 判断值是否存在
#判断一个值是否存在于给定的列表中的许多方式,其中最具有 Python 风格的是使用 in:
>>> num = [1, 2, 3]
>>> 1 in num
True
>>> 5 in num
False
>>> #同一个值可能出现在列表的多个位置,但只要至少出现一次,in就会返回Ture
>>> num = [1, 1, 2, 3]
>>> 1 in num
True

1.2.2 len()

#使用 len()获取长度
#len()可以返回列表长度
>>> num = [1, 2, 3]
>>> len(num)
3 #对于汉字呢?是如何计算长度呢?
>>> num = "菜鹌鹑2333"
>>> len(num)
7
#so,你get到了吗?

1.2.3  “=” 和 “copy()”有啥不一样呢?

# “=” 是赋值  copy()是复制
#这个相信大家都知道,但是到底还有啥区别呢?往下看
>>> a = [1, 2, 3]
>>> a
[1, 2, 3]
>>> b = a
>>> b
[1, 2, 3]
>>> a[0] = '菜鹌鹑'
>>> a
['菜鹌鹑', 2, 3]
>>> b
['菜鹌鹑', 2, 3]
#和软链接有点像哦,让我们看看他们的内存地址:
>>> hex(id(a))
'0x1a93262c588'
>>>
>>> hex(id(b))
'0x1a93262c588'
#我们发现,两个变量指向同一个对象。 #咱们再看看copy()
>>> c = a.copy()
>>> a
[1, 2, 3]
>>> c
[1, 2, 3]
>>> a[0] = '菜鹌鹑'
>>> c
[1, 2, 3]
#没办法改变c列表了,再看看他们的内存地址
>>> hex(id(a))
'0x1a93262c588'
>>> hex(id(c))
'0x1a93262ce08'
#原来copy()生成了新的列表,已经指向两个不同的对象。 #除了copy(),还有其他方法生成新列表
########
#list()#
########
>>> a = [1,2,3]
>>> b = list(a)
>>> b
[1, 2, 3]
>>> hex(id(a))
'0x2e78957c588'
>>> hex(id(b))
'0x2e78957cfc8'
#########
#列表切片#
#########
>>> a = [1,2,3]
>>> c = a[:]
>>> c
[1, 2, 3]
>>> hex(id(c))
'0x2e78957c588'
>>> hex(id(a))
'0x2e78957ce08'

Python_Day1_人人都爱列表的更多相关文章

  1. Head First Python之人人都爱列表(1-初识Python)

    IDLE 内置函数==BIF==built-in function 默认地,内置函数都是紫色,字符串是绿色,关键字是橙色. tab:自动补全 Alt-P:前一个 Alt-N:下一个 列表的特性 列表看 ...

  2. Python学习笔记1——人人都爱列表

    一些BIF函数在列表中的应用: Python 3.3.4 (v3.3.4:7ff62415e426, Feb 10 2014, 18:13:51) [MSC v.1600 64 bit (AMD64) ...

  3. 【head first python】1.初识python 人人都爱列表

    #coding:utf-8 #创建简单的python列表 movies = ["The Holy Grail", "The Life of Brain", &q ...

  4. NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介

    一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是Se ...

  5. 【转】NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介

    一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是Se ...

  6. NoSQL初探之人人都爱Redis:(1)Redis简介与简单安装

    一.NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经 ...

  7. NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例

    一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,“消息队列”是在消息的传输过程中保存消息的容器 ...

  8. NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索

    一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一 ...

  9. 【转】 NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索

    一.主从复制架构简介 通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构.那么,我们首先来了解一 ...

随机推荐

  1. 分页组件与CBV

    一. 自定义分页 1.准备工作 (1).首先在models.py中创建一张book表用来存储数据 from django.db import models class Book(models.Mode ...

  2. ZooKeeper学习第六期---ZooKeeper机制架构(转)

    转载来源:https://www.cnblogs.com/sunddenly/p/4133784.html 一.ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control L ...

  3. export命令的使用

    一:export将环境变量昭告天下     1.直接输入export会将显示bash下的所有环境变量       2.env/set/export/declare都可以显示shell的变量       ...

  4. Hexo+NexT(一):在Windows下安装Hexo+NexT及搭建博客

    阅读本篇之前,假定读者已经有了Node.js的基础,如需要补充Node.js知识的,请自行百度. Hexo是在Node.js框架下的一个项目,利用Node.js提供的强大功能,完成从Markdown到 ...

  5. Netty源码分析--Channel注册(中)(六)

    接上一篇,我们继续看 不知道大家第一次看这段代码的时候有没有一脸懵逼,反正我是一脸懵,为什么这个if else 最终都是调用的register0方法,都是一样的. 其实这里就是为什么Netty是线程安 ...

  6. Hadoop初步学习

    我们老板理解的大数据是,从数据到知识的转化.大数据目前的应用如 支付宝金融大数据.腾讯出行大数据等. 大数据的工作就是从海量数据源中筛选,梳理对自己有用的数据,整合成合适的数据结构,存储并进行可视化. ...

  7. Appium+python自动化(十三)- 输入中文 - 一次填坑记(超详解)

    简介 无论你在哪里,在做什么都会遇到很多坑,这些坑有些事别人挖的,有些是自己挖的.别人挖的叫坑人,自己挖的叫自杀,儿子挖的叫坑爹.因此在做app自动化道路上也不会是一帆风顺的,你会踩很多坑,这些坑和你 ...

  8. vSphere、 ESXi、Vcenter、vSphere Client关系

    vSphere是什么? vSphere 是VMware公司发布的一整套产品包,是VMware公司推出的一套服务器虚拟化解决方案,包含VMware ESXi hypervisor,VMware vCen ...

  9. 思维导图xmind的使用方法

    什么是Xmind Xmind是一款简单好用的思维导图软件,除了可以轻松绘制基本逻辑图,还支持组织结构图(竖直).树状图(水平+竖直).思维导图(辐射).鱼骨图.二维图(表格)模型.免费版可以把思维导图 ...

  10. LNet代码分析

    源码版本:lustre-release 2.15.55 介绍 LNet是Lustre的网络模块,代码目录分为了lnet和lnd lnet提供了统一的接口 lnd封装了底层驱动,有socklnd(TCP ...