Python基础入门-列表
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
关于列表的一些基础操作我们就先介绍到这来,后面我们随着实际的应用还会继续增加内容!!!