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

 

版权声明:本文为quail2333原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/quail2333/p/11247459.html