Python列表list(7)

前面我们讲了for循环,assert的用法,条件表达式(唯一的一个三元操作符),range()函数的使用方法。今天,我们再来介绍一下一个新的概念——列表(list)

1)开始来创建一个列表,这里主要有三种类型:
①创建一个普通列表:

>>> number = [1,2,3,4,5]
>>> print(number)
[1, 2, 3, 4, 5]

②创建一个混合列表:

>>> mix = [1,2,[1,2,3],'Arduino']
>>> print(mix)
[1, 2, [1, 2, 3], 'Arduino']

③创建一个空列表:

>>> none = []
>>> print(none)
[]

2)创建了列表之后,我们有时会不可避免的添加一些元素,这里有三种方法:
①append():

>>> list1 = ['peach','pineapple','orange','apple','banana','pear']
>>> list1.append('watermelon')
>>> print(list1)
['peach', 'pineapple', 'orange', 'apple', 'banana', 'pear', 'watermelon']

>>> list1.append('strawberry','blueberry')
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    list1.append('strawberry','blueberry')
TypeError: append() takes exactly one argument (2 given)

看到上面的例子,我们就明白了append()函数只有一个参数,所以用两个参数是不正确的,这个点我们叫做对象的方法,而且添加元素是放在列表的末尾的

②extend()——用一个列表来扩张另一个列表,也是加到末尾的

>>> list1.extend('strawberry','blueberry')
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    list1.extend('strawberry','blueberry')
TypeError: extend() takes exactly one argument (2 given)

这是为什么呢?extend()添加元素是要求我们必须要用列表,正确的写法是这样:

>> list1.extend(['strawberry','blueberry'])
>>> print(list1)
['peach', 'pineapple', 'orange', 'apple', 
'banana', 'pear', 'watermelon', 'strawberry', 'blueberry']

③insert(),有两个参数,第一个参数是在列表中的位置,后面的第一个参数表示要插入的名称:

>>> list1.insert(1,'papaya')
>>> print(list1)
['peach', 'papaya', 'papaya', 'pineapple', 'orange', 
'apple', 'banana', 'pear', 'watermelon', 'strawberry', 'blueberry']

3)从列表中获取元素:跟数组一样,我们可以通过元素索引值(index)从列表获取单个元素(列表索引值从0开始)

>>> list1[0]
'peach'

4)从列表删除元素,也有三种方法:
①remove()——不需要知道元素在表中的确切位置

>>> list1.remove('blueberry')
>>> print(list1)
['peach', 'papaya', 'papaya', 'pineapple', 'orange', 
'apple', 'banana', 'pear', 'watermelon', 'strawberry']

②del——这个删除整个列表,也可以删除某一个具体的元素

>>> del list1[2]
>>> print(list1)
['peach', 'papaya', 'pineapple', 'orange', 'apple', 
'banana', 'pear', 'watermelon', 'strawberry']
>>> del list1
>>> print(list1)
Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    print(list1)
NameError: name 'list1' is not defined

③pop()——删除某一个元素之后可以显示出来

>>> list1 = ['peach','pineapple','orange','apple','banana','pear']
>>> list1.pop(1)
'pineapple'

4)列表分片(slice)——一次性或多个元素

>>> list1[1:3]
['orange', 'apple']

不包括最右边的数字,有时候我们偷懒的时候,会有这些写法

>>> list1[:3]
['peach', 'orange', 'apple']
>>> list1[1:]
['orange', 'apple', 'banana', 'pear']
>>> list1[:]
['peach', 'orange', 'apple', 'banana', 'pear']

提到list1[:],我们自然就会想到这个:

>>> list2 = list1
>>> list3 = list1[:]
>>> print(list2,list3)
['peach', 'orange', 'apple', 'banana', 'pear'] ['peach', 
'orange', 'apple', 'banana', 'pear']

那这两种方式是不是一样呢?当然不是,为什么呢?看一下下面这个例子:

>>> del list1[2]
>>> print(list2,list3)
['peach', 'orange', 'banana', 'pear'] ['peach', 'orange',
 'apple', 'banana', 'pear']

你会发现这个list2和list3的值此时随着list1的修改而结果发生变化,所以这个list2我们叫做list1的复制,而list3叫做list1的拷贝

5)列表的一些常用操作符:
①比较操作符:

>>> list1 = [1,2,3]
>>> list2 = [2,3,4]
>>> list1 > list2
False

②逻辑操作符:

>>> list3 = [2,3,6]
>>> list4 = [2,5,7]
>>> (list1 > list2 )and (list3 < list4)
False

③连接操作符:

>>> list5 = list1 + list2
>>> list5
[1, 2, 3, 2, 3, 4]

④重复操作符:

>>> list6 = list5 * 2
>>> list6
[1, 2, 3, 2, 3, 4, 1, 2, 3, 2, 3, 4]

⑤成员关系操作符:

>>> 1 not in list2
True

其中,要注意的是not in或者是in只能表示一层关系:

>>> list7 = [1,24,[1,2,5],list2]
>>> list7
[1, 24, [1, 2, 5], [2, 3, 4]]
>>> 2 in list7
False
>>> 2 in list7[2]
True

6)讲到最后,我们在介绍一下列表的一些常用的小伙伴们:
①我们首先来看一下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']

②count()——用来列表中某个数据出现的次数:

>>> list1 = [1,2,6,23,7,2,8,2]*3
>>> list1
[1, 2, 6, 23, 7, 2, 8, 2, 1, 2, 6, 23, 7, 2, 8, 2, 1, 2, 6, 23, 7, 2, 8, 2]
>>> list1.count(2)
9

③index()——该数据在列表中出现的第一次的位置

>>> list1.index(2)
1

④reverse()——将列表中的数据逆序排列:

>>> list1.reverse()
>>> list1
[2, 8, 2, 7, 23, 6, 2, 1, 2, 8, 2, 7, 23, 6, 2, 1, 2, 8, 2, 7, 23, 6, 2, 1]

⑤sort()——顺序排列:

>>> list1.sort()
>>> list1
[1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 7, 7, 7, 8, 8, 8, 
23, 23, 23]

⑥其实reverse和sort是可以结合在一起的:

>>> list1.sort(reverse = True)
>>> list1
[23, 23, 23, 8, 8, 8, 7, 7, 7, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2,
 1, 1, 1]

好了,列表的知识真的是太丰富了,4000字啊,噗~~~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值