Python数据类型之List列表实例详解

本文实例讲述了Python数据类型之List列表。分享给大家供大家参考,具体如下:

list列表

1.概述:

通过之前的学习,我们知道变量可以存储数据,但是一个变量只能存储一个数据,现在有一个班级,班级有20个人,现在求班级的平均年龄。

若按照之前的方式来解决

age1 = 10
age2 = 12
...
age20 = 12
average = (age1 + age2 +...+age20)/20

在这里,很显然这种方法显得很麻烦,而python提供了一种解决方案,就是使用列表,可以随时添加和删除其中的元素。

本质:list列表的本质是一种有序的集合

2.创建列表

语法: 列表名 = [元素1,元素2,元素3…说明:列表中的选项被称为元素,跟string类似,下标也是从0开始计数

使用:创建列表

#创建空列表
list1 = []
#创建带有元素的列表
list2 = [10, 20, 30, 10]
print(list2)
list3 = list(range(1,10))
list4 = [i for i in range(10)]
print(list3)
print(list4)

输出:

[10, 20, 30, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

在列表中元素的数据类型可以不同(灵活性)

list3 = [33, "good", True, 10.32]
print(list3)

输出:

[33, 'good', True, 10.32]

3.列表元素的访问

3.1 列表的取值

功能:访问list列表中元素值

语法:列表名[索引]

list4 = [22, 33, 12, 32, 45]
#下标从0开始,最大值为len(list4)-1
print(list4[0])

输出:

22

注意:当索引值大于len(list4)-1的时候,会出现以下错误:

print(list4[5])
IndexError: list index out of range

这个错误就是下标越界【下标超出了可表示的范围】

3.2 列表元素的替换

功能:更改列表元素的值

语法:列表名[下标] = 值

list4 = [22, 33, 12, 32, 45]
list4[0] = "hello"
print(list4[0])
print(list4)

输出:

hello
['hello', 33, 12, 32, 45]

4.列表操作

4.1 列表组合

语法: 列表3 = 列表1 + 列表2

list1 = [1, 2, 3]
list2 = ['hello', 'yes', 'no']
list3 = list1 + list2
print(list3)

输出:

[1, 2, 3, 'hello', 'yes', 'no']

4.2 列表重复

语法: 列表2 = 列表1 * n

list1 = [1, 2, 3]
list2 = list1 * 2
print(list2)

输出:

[1, 2, 3, 1, 2, 3]

4.3 判断元素是否在列表中

语法:元素 in 列表

若存在则返回True,否则返回False

list1 = [1, 2, 3]
print(1 in list1)

输出:

True

4.4 列表截取

语法:列表[start: end] 表示获取从开始下标到结束下标的所有元素[start, end)

list1 = [1, 2, 3, 'hello', 'yes', 'no']
print(list1[2:4])
#若不指定start,则默认从0开始截取,截取到指定位置
#若不指定end,则从指定位置开始截取,截取到末尾结束

输出:

[3, 'hello']

4.5 二维列表

语法:列表 =[列表1,列表2,列表3,… ,列表n]

#创建二维列表,即列表中的元素还是列表
list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]

4.5 二维列表取值

语法:列表名[下标1][下标2]

注意:下标1代表第n个列表(下标从0开始),下标2代表第n个列表中的第n个元素

list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]
print(list1[0][0])

输出:

1

5.列表的方法

5.1 list.append(元素/列表)

功能:在列表中末尾添加新的元素【在原本的列表中追加元素】

注意:append()中的值可以是列表也可以是普通元素

>>> list1 = [3, 4, 6]
>>> list1.append(6)
>>> print(list1)
[3, 4, 6, 6]

5.2 list.extend(列表)

功能:在列表的末尾一次性追加另外一个列表中的多个值

注意:extend()中的值只能是列表/元组[一个可迭代对象],不能是元素。

>>> list1 = [1,2,3]
>>> list2 = [3, 4,5]
>>> list1.extend(list2)
>>> print(list1)
[1, 2, 3, 3, 4, 5]

5.3 list.insert(下标值, 元素/列表)

功能:在下标处插入元素,不覆盖原本的数据,原数据向后顺延。

注意:插入的数据可以是元素也可以为列表。

>>> list1 = [1,2,3]
>>> list1.insert(1,0)
>>> print(list1)
[1, 0, 2, 3]
>>> list1.insert(1,[2, 4, 8])
>>> print(list1)
[1, [2, 4, 8], 0, 2, 3]

5.4 list.pop(下标值)

功能:移除列表中指定下标处的元素(默认移除最后一个元素),并返回移除的数据。

>>> list1 = [1, [2, 4, 8], 0, 2, 3]
>>> list1.pop()
3
>>> print(list1)
[1, [2, 4, 8], 0, 2]
>>> list1.pop(2)
0
>>> print(list1)
[1, [2, 4, 8], 2]

5.5 list.remove(元素)

功能:移除列表中的某个元素第一个匹配结果

list1 = [1, 2,3,2,4]
list1.remove(2)
print(list1)

输出:

[1, 3, 2, 4]

5.6 list.clear()

功能:清除列表中所有的数据

>>> list1 = [1, 2, 3]
>>> list1.clear()
>>> print(list1)
[]

5.7 list.index(元素[, start][, stop])

功能:从指定的范围的列表中找出某个值第一匹配的索引值

若不指定范围,则默认是整个列表。

>>> list1 = [1, 2, 3]
>>> list1.index(2)
1
>>> list1.index(4)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ValueError: 4 is not in list

注意:若在列表中找不到这个元素,则会报错。

5.8 list.count(元素)

功能:查看元素在列表中出现的次数

>>> list1 = [1, 2, 3, 1]
>>> list1.count(1)
2

5.9 len(list)

功能: 获取元素个数

>>> list1 = [1, 2, 3, 1]
>>> len(list1)
4

5.10 max(list)

语法:获取列表中的最大值,元素是不同的数据类型时不能使用

>>> list1 = [1, 2, 3, 1]
>>> max(list1)
3

5.11 min(list)

语法:获取列表中的最小值,元素是不同的数据类型时不能使用

>>> list1 = [1, 2, 3, 1]
>>> min(list1)

5.12 list.reverse()

语法: 列表倒叙,直接修改原列表,返回值为None。

>>> list1 = [1, 2, 3, 1]
>>> list1.reverse()
>>> print(list1)
[1, 3, 2, 1]

5.13 list.sort()

语法:列表排序 默认升序,元素是不同的数据类型时不能使用

>>> list1 = [1, 2, 3, 1]
>>> list1.sort()
>>> print(list1)
[1, 1, 2, 3]
#倒序
list1 = [1, 2,3,2,4]
list1.sort(reverse=False)
print(list1)

输出:

[1, 2, 2, 3, 4]

5.14 浅拷贝

语法:

list1 = [1, 2, 3]
​list2 = list1
>>> list1 = [1, 2, 3, 1]
>>> list2 = list1
>>> print(list2)
[1, 2, 3, 1]
>>> print(id(list1))
4314476424
>>> print(id(list2))
4314476424
list1 = [1, 2,3,2,4]
list2 = list1
list2[0] = 0
print(list1)

输出:

[0, 2, 3, 2, 4]

注意:浅拷贝为引用拷贝,类似于快捷方式。

浅拷贝中一个变量发生改变,另一个也相应发生改变,

5.15 深拷贝

语法:

list1 = [1, 2, 3]
​list2 = list1.copy()

方式2:

list2 = list1[:]
>>> list1 = [1, 2, 3, 1]
>>> list2 = list1.copy()
>>> print(list2)
[1, 2, 3, 1]
>>> print(id(list2))
4314525320
>>> print(id(list1))
4314524808
list1 = [1, 2,3,2,4]
list2 = list1[:]
print(list2)
print(id(list1))
print(id(list2))

输出:

[1, 2, 3, 2, 4]
2485711112520
2485710239496

注意:深拷贝为内存拷贝,开辟了新的内存空间

5.16 list(元组)

功能:将元组转为列表

>>> list1 = list((1, 2, 3, 4))
>>> print(list1)
[1, 2, 3, 4]

6.列表的遍历

6.1 使用for循环遍历列表

语法:

for 变量名 in 列表 :
​ 语句

功能:for循环主要用于遍历列表

遍历:指的是依次访问列表中的每一个元素,获取每个下标对应的元素值

说明:按照顺序获取列表中的每个元素,赋值给变量名,再执行语句,如此循环往复,直到取完列表中所有的元素为止

>>> list1 = ['hello', 78, '你好', 'good']
>>> for item in list1:
...   print(item)
...
hello
78
你好
good

6.2 使用while循环遍历列表[使用下标循环]

语法:

下标 = 0
while 下标 < 列表的长度:
​ 语句
​ 下标 += 1

>>> list1 = ['hello', 78, '你好', 'good']
>>> index = 0
>>> while index < len(list1):
...   print(list1[index])
...   index += 1
...
hello
78
你好
good

6.3 同时遍历下标与元素

语法:

for 下标,变量 in enumerate(列表)
​ 语句

>>> list1 = ['hello', 78, '你好', 'good']
>>> for index,item in enumerate(list1):
...   print(index, item)
...
0 hello
1 78
2 你好
3 good

enumerate()[枚举]函数用于一个可遍历的数据对象(如列表,元组或者字符串)组合为一个索引序列,同时列出数据与数据下标,一般使用在for循环中
enumerate(obj, [start =0])
obj:一个可迭代对象
start:下标起始位置

7、List转dict

list1=[('a',1),('b',2),('c',3)]
dict1={k:v for k,v in list1}
dict2={v:k for k,v in list1}
print(dict1)
print(dict2)

输出:

{'a': 1, 'b': 2, 'c': 3}
{1: 'a', 2: 'b', 3: 'c'}

8、切片

8.1 一个冒号

list1=['a','b','c','d','e']
print('获取全部:',list1[:])
print('去头去尾:',list1[1:-1])
print('取[2,4)',list1[2:4])

输出:

获取全部: ['a', 'b', 'c', 'd', 'e']
去头去尾: ['b', 'c', 'd']
取[2,4) ['c', 'd']

冒号后面没有值则默认为list1的长度。

8.2两个冒号

冒号后面是步长,切片的步长默认为1,不可为0。

list1=['a','b','c','d','e']
print('获取全部:',list1[::])
print('列表倒置:',list1[::-1])
print('从下标0开始,步长为2',list1[::2])
print('从下标1开始,步长为2',list1[1::2])

输出:

获取全部: ['a', 'b', 'c', 'd', 'e']
列表倒置: ['e', 'd', 'c', 'b', 'a']
从下标0开始,步长为2 ['a', 'c', 'e']
从下标1开始,步长为2 ['b', 'd']

常用的是list1[::-1],列表倒置。

更多Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python操作列表之List.insert()方法的使用

    insert()方法插入对象obj到列表的偏移量索引. 语法 以下是insert()方法的语法: list.insert(index, obj) 参数 index -- 这是要插入对象obj必要的索引 obj -- 这是将被插入到给定的列表中的对象 返回值 此方法不返回任何值,但它插入指定的索引处的指定元素 例子 下面的例子显示了insert()方法的使用 #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc'] aList.insert( 3,

  • 在Python中操作列表之List.pop()方法的使用

    pop()方法从列表移除并返回最后一个对象或obj. 语法 以下是pop()方法的语法: list.pop(obj=list[-1]) 参数 obj -- 这是一个可选参数,该对象的索引可以从该列表中删除 返回值 此方法返回从列表中移除对象 例子 下面的例子显示了pop()方法的使用 #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc']; print "A List : ", aList.pop(); print "B L

  • Python列表(list)、字典(dict)、字符串(string)基本操作小结

    创建列表 复制代码 代码如下: sample_list = ['a',1,('a','b')] Python 列表操作 复制代码 代码如下: sample_list = ['a','b',0,1,3] 得到列表中的某一个值 复制代码 代码如下: value_start = sample_list[0] end_value = sample_list[-1] 删除列表的第一个值 复制代码 代码如下: del sample_list[0] 在列表中插入一个值 复制代码 代码如下: sample_li

  • Python中使用copy模块实现列表(list)拷贝

    引用是指保存的值为对象的地址.在 Python 语言中,一个变量保存的值除了基本类型保存的是值外,其它都是引用,因此对于它们的使用就需要小心一些.下面举个例子: 问题描述:已知一个列表,求生成一个新的列表,列表元素是原列表的复制 复制代码 代码如下: a=[1,2] b=a 这种做法其实并未真正生成一个新的列表,b指向的仍然是a所指向的对象.这样,如果对a或b的元素进行修改,a,b的值同时发生变化. 解决的方法为: 复制代码 代码如下: a=[1,2] b=a[:] 这样修改a对b没有影响.修改

  • python分割列表(list)的方法示例

    前言 在日常开发中,有些API接口会限制请求的元素个数,这时就需要把一个大列表分割为固定的小列表,再进行相关处理,本文搜集了几个简单的方法,分享出来供大家参考学习,下面来看看详细的介绍: 方法示例 #1.分割大列表为三个元素的小列表,不够三个元素的亦当成一个列表输出 In [17]: lst Out[17]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [18]: for i in range(0,len(lst),3): ...: print lst[i:i+3] ..

  • Python 列表(List) 的三种遍历方法实例 详解

    Python 遍历 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,下面废话不多说,直接贴代码 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': list = ['html', 'js', 'css', 'python'] # 方法1 print '遍历列表方法1:' for i in list: print ("序号:%s 值:%s" % (list.index(i)

  • Python中列表(list)操作方法汇总

    本文实例汇总了Python中关于列表的常用操作方法,供大家参考借鉴.具体方法如下: 一.Python创建列表: sample_list = ['a',1,('a','b')] 二.Python 列表操作: 假设有如下列表: sample_list = ['a','b',0,1,3] 1.得到列表中的某一个值: value_start = sample_list[0] end_value = sample_list[-1] 2.删除列表的第一个值: del sample_list[0] 3.在列表

  • Python 列表(List)操作方法详解

    列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.Python有6个序列的内置类型,但最常见的是列表和元组.序列都可以进行的操作包括索引,切片,加,乘,检查成员.此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法. 一.创建一个列表只要把逗号分隔的不同的数据项使用方括号括起来即可.如下所示: 复制代码 代码如下: list1

  • Python列表list数组array用法实例解析

    本文以实例形式详细讲述了Python列表list数组array用法.分享给大家供大家参考.具体如下: Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构.   创建列表 复制代码 代码如下: sample_list = ['a',1,('a','b')] Python 列表操作 复制代码 代码如下: sample_list = ['a','b',0,1,3] 得到列表中的某一个值 复制代码 代码如下: value_start = sample_list

  • Python中list列表的一些进阶使用方法介绍

    判断一个 list 是否为空 传统的方式: if len(mylist): # Do something with my list else: # The list is empty 由于一个空 list 本身等同于 False,所以可以直接: if mylist: # Do something with my list else: # The list is empty 遍历 list 的同时获取索引 传统的方式: i = 0 for element in mylist: # Do somet

  • Python中字典(dict)和列表(list)的排序方法实例

    一.对列表(list)进行排序 推荐的排序方式是使用内建的sort()方法,速度最快而且属于稳定排序 复制代码 代码如下: >>> a = [1,9,3,7,2,0,5]>>> a.sort()>>> print a[0, 1, 2, 3, 5, 7, 9]>>> a.sort(reverse=True)>>> print a[9, 7, 5, 3, 2, 1, 0]>>> b = ['e','a'

随机推荐