列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字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. python常用点小记

    记录一下,经常用到的一些python小工具 1.验证一个字符串是否为url regex = re.compile( r'^(?:http|ftp)s?://' # http:// or https:/ ...

  2. 10个有趣的javascript和css库(2019年5月最新)

    我们的使命是让您了解最新和最酷的Web开发趋势.这就是为什么我们每个月都会发布一些精选的资源,这些资源是我们偶然发现并认为值得您关注的. 1.Tessaract.js 强大的javascript(节点 ...

  3. SYN5301型 时间检定装置

      SYN5301型  时间检定装置 夹具概述 我们的夹具可以水平放置测秒表,也可以垂直测秒表,而其他厂家的夹具只能水平放置测,如果想垂直测的话得依靠在墙上或者是其他的物体上来测,这样的检测出来的数据 ...

  4. Python的魔术方法详解

    构造和初始化 __init__我们很熟悉了,它在对象初始化的时候调用,我们一般将它理解为"构造函数". 实际上, 当我们调用x = SomeClass()的时候调用,__init_ ...

  5. 关于火狐浏览器设置cookie的一个问题

    最近发现我一个项目的网页,里面的cookie无法添加了,急的我瞪着我的PHP代码沉思了好久,我默认用的火狐浏览器,然而我默默的打开另一个叫360的浏览器,发现它的cookie是正常添加的. ... 难 ...

  6. Linux下无法执行tree命令问题

    Linux下不能使用tree命令,是因为没有安装命令, 执行下面代码就行了 yum install tree -y

  7. HDU 3416:Marriage Match IV(最短路+最大流)

    http://acm.hdu.edu.cn/showproblem.php?pid=3416 题意:给出n个点m条边,边信息分别是两个端点和一个费用,再给出一个起点和一个终点,问从起点到终点的完全不相 ...

  8. input的值为浅淡样式(点击值消失)

    <input type="text" id="leftSearchValue" value="" placeholder=" ...

  9. [深度学习]TensorFlow安装

    virtualenv 可以用来建立一个专属于项目的python环境,保持一个干净的环境.只需要通过命令创建一个虚拟环境,不用的时候通过命令退出,删除.实践证明用虚拟环境能避免很多糟心的事. 下面介绍一 ...

  10. Shiro中@RequiresAuthentication等等注解介绍

    使用前请先开启Shiro的controller层注解,如果已经设置请下滑绕过 要在spring-mvc.xml中写. <!--下面的用于开启shiro的权限注解--> <bean c ...