zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python基础入门-列表

2023-09-11 14:19:05 时间

Python中的列表在实际工作中的用的也比较多,而且列表作为一个数据结构存在,在python的实际开发中也发挥着重要的作用。网上很多关于列表的使用和一些介绍但是我觉得都不是很全面,一些小白同学看了的话有些可能会懵逼,我得这篇文字只讲怎么用。我也觉得只有把基础的知识和使用学会了,后面学习编程才会更加轻松。而且我一直认为在讲解一个知识的时候最好不要带其他的知识点,因为这样对于小白学习来说比较懵逼,就算要加,也请在一旁进行详细的说明。好了,废话不多说,继续干!

今天我们来讲解一下Python中关于列表的一些正确的使用姿势:

使用win+r   ---> cmd --->python ---> dir(list)  如下所示:

>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>>

学习list之前我们先lai来看下列表的定义和特点:

定义:列表是以方括号包围,元素以逗号分隔的可变的序列之一。

特点:

1.可变 
2.可以储存不同的数据类型
3.有序的序列之一 

接下来我们来看下列表的基本操作:增、删、改、查

1.增加元素 (默认向后面追加)和 insert方法用于向指定索引位追加元素

>>> list = [1,2,3,4]
>>> list.append(5)
>>> list
[1, 2, 3, 4, 5]
>>>

第二种方式 insert 方式 

>>> list
[2, 3, 4]
>>> list.insert(0,3)
>>> list
[3, 2, 3, 4]
>>> list.insert(1,333)
>>> list
[3, 333, 2, 3, 4]
>>>

2.删除元素 一种是remove 一种是del关键字 一种是pop

>>> list
[1, 2, 3, 4, 5]
>>> list
[1, 2, 3, 4, 5]
>>> list.remove(5)
>>> list
[1, 2, 3, 4]
>>>

第二种通过del删除元素 (删除是根据列表的索引位置进行删除的)

>>> list
[1, 2, 3, 4, 5]
>>> list.remove(5)
>>> list
[1, 2, 3, 4]
>>> del list[0]
>>> list
[2, 3, 4]
>>>

第三种是pop函数

>>> l1=[1,2,3,4,5,6,6,7]默认删除最后一个 将最后一个的结果返回
>>> l1.pop()
7
>>> l1
[1, 2, 3, 4, 5, 6, 6]
>>> l1.pop(1)  删除指定 索引位上的元素  
2 
>>> l1
[1, 3, 4, 5, 6, 6]
>>>

3.修改列表内的元素(根据索引位置进行修改的)

>>> list
[3, 333, 2, 3, 4]
>>> list[1]='www'
>>> list
[3, 'www', 2, 3, 4]
>>> list[0]='meiguo'
>>> list
['meiguo', 'www', 2, 3, 4]

4.访问列表内的元素

>>> list
[1, 2, 3, 4, 5, 6]
>>> list[1]
2
>>> list[1:5]
[2, 3, 4, 5]
>>> list[::-1]
[6, 5, 4, 3, 2, 1]
>>> list[0:10:2]
[1, 3, 5]
>>> list[-1]
6
>>> list[::]
[1, 2, 3, 4, 5, 6]
>>

5.计算列表内元素的个数使用len()

>>> list
[1, 2, 3, 4, 5, 6]
>>> len(list)
6

6.计算列表内元素出现的个数

>>> list
[1, 2, 3, 4, 5, 6]
>>> list.count(6)
1
>>> list.append(6)
>>> list.append(6)
>>> list
[1, 2, 3, 4, 5, 6, 6, 6]
>>> list.count(6)
3
>>>

7.对列表内的元素进行排序sort 

>>> list = [111,2,333,4,0,5,12.0]
>>> list.sort()
>>> list
[0, 2, 4, 5, 12.0, 111, 333]

对列表进行反排序使用reverse()函数

>>> list = [111,2,333,4,0,5,12.0]
>>> list.sort()
>>> list
[0, 2, 4, 5, 12.0, 111, 333]
>>> list.reverse()
>>> list
[333, 111, 12.0, 5, 4, 2, 0]
>>>

或者这种方式排序

>>> list
[0, 2, 4, 5, 12.0, 111, 333]
>>> list
[0, 2, 4, 5, 12.0, 111, 333]
>>> list.sort(reverse=True)
>>> list
[333, 111, 12.0, 5, 4, 2, 0]
>>> list.sort(reverse=False)
>>> list
[0, 2, 4, 5, 12.0, 111, 333]
>>>

8.比较两个列表之间的大小(列表1的第一个元素大于列表2的第1个元素我们就认为列表1大于列表2)

>>> list
[0, 2, 4, 5, 12.0, 111, 333]
>>> list1=[11,22,33,44,'aa']
>>> list>list1

False

9.判断某个元素是否在列表中

>>> list
[0, 2, 4, 5, 12.0, 111, 333]
>>> 2 in list
True
>>> 'aa' in list
False

10.追加一个列表到另一个列表 使用extend函数

>>> list
[0, 2, 4, 5, 12.0, 111, 333]
>>> list1=['www.baidu.com']
>>> list.extend(list1)
>>> list1
['www.baidu.com']
>>> list
[0, 2, 4, 5, 12.0, 111, 333, 'www.baidu.com']
>>>

11.列表内的元素移位

>>> list=[11,222,33,'aa','demo']
>>> list[0],list[1] = list[1],list[0]
>>> list
[222, 11, 33, 'aa', 'demo']
>>>

12.列表内元素去除重复值

去除列表内重复的元素(去除后顺序改变)

>>> l1=[1,2,3,4,5,1,1,'a','a',3]
>>> l1
[1, 2, 3, 4, 5, 1, 1, 'a', 'a', 3]
>>> l2=list(set(l1))
>>> l2
['a', 1, 2, 3, 4, 5]

去除列表内重复的元素(去除后顺序不改变)

>>> l1=[1, 2, 3, 4, 5, 1, 1, 'a', 'a', 3]
>>> l1
[1, 2, 3, 4, 5, 1, 1, 'a', 'a', 3]
>>> l2.sort(key=l1.index)
>>> l2
[1, 2, 3, 4, 5, 'a']
>>>

 13.列表内元素的二层判断

>>> l1
[1, 2, 3, 4, 1, 2, 3, 4, 1, 1]
>>> l1 = [1,2,3,[1,2,3,[222,'hello']]]
>>> 1 in l1
True
>>> 222 in l1
False
>>> 222 in l1[-1]
False
>>> 222 in l1[-1][-1]
True
>>>

14.迭代列表时访问列表下标索引

demo = [1,2,3]
for index in range(len(demo)):
    print index,'------>',demo[index]  

返回结果:

0 ------> 1
1 ------> 2
2 ------> 3

优雅版写法enumerate可以指定元素从几开始,默认是0,也可以从1开始。

demo = [1,2,3]
for index,demo in enumerate(demo):
    print index,'--->',demo

输出结果:

0 ---> 1
1 ---> 2
2 ---> 3

15.append方法和extend方法的不同之处

append表示把某个元当做新元素追加到列表的最后面,他的参数可以是任何对象。

extend的参数必须是可迭代的对象,表示把该对象里面的所有元素逐步的追加到列表的后面。

append的用法:

x = [1,2,3]
y = [4,5]
x.append(y)
print x

输出结果为:

[1, 2, 3, [4, 5]]  

在看一下extend的用法:

x = [1,2,3]
y = [4,5]
x.extend(y)
print x  

输出结果

[1, 2, 3, 4, 5]

16.检查列表是否为空

demo = [3,4,5]
if  len(demo) == 0:    版本1
    print '空列表'
if demo = []:          版本2
    print '空列表'
if not demo:           版本3
    print '空列表 '

17.获取列表内的最后一个元素

a = [1,2,3,4,5,6,7,8,9]
print a[len(a)-1]
print a[-1]

输出结果:

9
9

18.如何对列表进行排序sort和内建函数sorted,复杂的数据可以通过指定key参数进行排序,由字典构成的列表根据字典中的age字段进行排序。默认是升序排列,reverse=True是降序排列。

items = [{"name":'homer','age':30},
         {'name':'bob','age':10},
         {'name':'jim','age':15}]
items.sort(key=lambda item:item.get('age'),reverse=True)
print items 

输出结果(默认升序排序,reverse=True是降序排列,指定age从大到小排序,指定age为key)

[{'age': 30, 'name': 'homer'}, {'age': 15, 'name': 'jim'}, {'age': 10, 'name': 'bob'}]

我们不希望改变原列表,而是生成一个新的有序列表,那么可以内置函数sorted,该函数返回的是新列表。

 

items = [{"name":'homer','age':30},
         {'name':'bob','age':10},
         {'name':'jim','age':15}]
new_items = sorted(items,key=lambda item:item.get('age'))
print new_items

输出结果:

[{'age': 30, 'name': 'homer'}, {'age': 10, 'name': 'bob'}, {'age': 15, 'name': 'jim'}]
[{'age': 10, 'name': 'bob'}, {'age': 15, 'name': 'jim'}, {'age': 30, 'name': 'homer'}]

19.如何随机获取列表内的值

import random
items = [1,2,3,4,5]
print random.choice(items)
print random.choice(items)
print random.choice(items)  

输出结果:

2
2
3

关于列表的一些基础操作我们就先介绍到这来,后面我们随着实际的应用还会继续增加内容!!!