• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回python栏目

33 - 数据类型 - List列表 - l = [1,2,3] - 操作

作者:

贺及楼

成为作者

更新日期:2024-12-02 10:51:40

数据类型 - List列表

Python 中的列表(list)是一种有序的集合,可以包含任意类型的元素,包括数字、字符串、甚至其他列表。列表是可变的,意味着可以修改其内容,如添加、删除或更改元素。它支持广泛的操作,如索引、切片、迭代等,以及内建方法,如排序、反转。列表在存储和处理序列数据时非常有用,是Python编程中非常灵活和强大的数据结构。

list列表的操作多种多样,序列有排序、反序;对列表集合的差集、并集、交集
多个列表合并、对列表进行末尾添加、指定位置添加、末尾追加、删除、修改等操作

创建list列表

只要把逗号分隔的不同的数据项使用方括号括起来即可。
如下所示:

  1. list0 = [] # 空列表
  2. list1 = ['phthon', 'java', 1997, 2000]
  3. list2 = [1, 2, 3, 4, 5 ]
  4. list3 = ["a", "b", "c", "d"]
  5. 与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

list列表操作的函数

函数 例子 输出 说明
alist.append() alist.append('app') alist = ['app'] 列表末尾添加
alist.insert() alist.insert( 3, 2) alist = ['app',2] 列表指定位置添加
alist.insert() alist.insert(3,3) alist = ['app', 2, 3] 列表指定位置添加
alist.insert() alist.insert(3,4) alist = ['app', 2, 3, 4] 列表指定位置添加
alist.insert() alist.insert(3,5) alist = ['app', 2, 3, 5, 4] 列表指定位置添加
alist.extend() alist.extend([99, '00']) alist = ['app', 2, 3, 5, 4,99, '00'] 列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
pop_data=alist.pop() pop_data=alist.pop() alist = ['app', 2, 3, 5, 4,99] 默认删除list中最后一个元素,pop_data='00'
pop_data=alist.pop() pop_data=alist.pop(1) alist = ['app', 3, 5, 4, 99] 删除第2个元素(0开头),pop_data=2
alist.remove() alist.remove('app') alist = [3, 5, 4,99] 删除1个list指定元素
n = len(alist) n = len([1,2,3]) n = 3 列表元素个数
lst2 = list(set()) lst2 = list(set([2, 1, 3, 4, 1])) lst2 = [1, 2, 3, 4] 去重
m = max(alist) m = max([1,2,3]) m = 3 返回列表元素最大值
n = min(alist) n = min([1,2,3]) n = 1 返回列表元素最小值
l = list(seq) l = list((1,2,3)) l = [1, 2, 3] 将元组转换为列表

list列表信息

count() 用于统计某个元素在列表中出现的次数。

  1. alist = [123, 'xyz', 'zara', 'abc', 123]
  2. print (alist.count(123))
  3. 以上实例输出结果如下:
  4. >>>2
  5. 使用index()方法:用于从列表中找出某个值第一个匹配项的索引位置。

list count

  1. alist = [123, 'xyz', 'zara', 'abc', 123]
  2. print (alist.index(123))
  3. print (alist.index('xyz'))
  4. 以上实例输出结果如下:第0个、第1
  5. >>>0
  6. >>>1

list index

list列表切片

索引访问列表中的值
注:切片同样适用于字符串,字符串也有下标

使用方法 说明
name[n:m] 切片是不包含后面那个元素的值(顾头不顾尾)
name[:m] 如果切片前面一个值缺省的话,从开头开始取
name[n:] 如果切片后面的值缺省的话,取到末尾
name[:] 如果全部缺省,取全部
name[n:m:s] 隔s个元素取一次; 步长是正数从左往右取; 步长是负数从右往左取
  1. alist = [123, 'xyz', 'zara', 2018, 'only']
例子 输出结果
alist[0] 123
alist[-2] 2018
alist[1:] ['xyz', 'zara', 2018, 'only']
alist[:3] [123, 'xyz', 'zara']
alist[1:3] ['xyz', 'zara']

python list切片
详细关于list、字符串、元组的切片还可以看自带方法 - data[ ] - 切片

list列表sort()方法排序和反序

sort() 用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

  1. 语法:list.sort(cmp=None, key=None, reverse=False)
参数 作用
cmp 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse 排序规则,reverse = True 降序, reverse = False 升序(默认)。
  1. alist = [123, 'xyz', 'zara', 2018, 'only']
  2. alist.sort() #降序
  3. alist.sort(reverse = True) #升序
  4. 使用reverse() 方法:用于反向列表中元素。
  5. alist = [123, 'xyz', 'zara', 2018, 'only']
  6. alist.reverse()
  7. print(alist)
  8. 以上实例输出结果如下:
  9. >>>['only', 2018, 'zara', 'xyz', 123]

反序

list列表map()方法挑出list

map(方法名, 列表)
类似for循环

  1. def f(x):
  2. return x*x
  3. data = map(f, [1, 2, 3])
  4. for i in data:
  5. print (i)
  6. 输出结果:
  7. 1
  8. 4
  9. 9

map()

  1. def f(self):
  2. return self["id"]
  3. data = map(f, [{"id":1},{"id":2}])
  4. for i in data:
  5. print(i)
  6. 输出结果:
  7. 1
  8. 2

list的map()

list列表的差集、并集、交集方法

  1. ## 差集
  2. a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
  3. b = [(2, 'aa', 'dsad')]
  4. data = set(a).difference(set(b))
  5. print(type(data))
  6. print(data)
  7. <class "set">
  8. {(3, 'cc', 'dada'), (0, 'ss', 'okok')}
  9. data2 = list(data)
  10. print(type(data2))
  11. print(data2)
  12. <class "list">
  13. [(3, 'cc', 'dada'), (0, 'ss', 'okok')]

list差集

  1. ## 并集
  2. a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
  3. b = [(2, 'aa', 'dsad')]
  4. data = set(a).union(set(b))
  5. print(type(data))
  6. print(data)
  7. <class "set">
  8. {(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')}
  9. data2 = list(data)
  10. print(type(data2))
  11. print(data2)
  12. <class "list">
  13. [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]

list并集

  1. ## 交集
  2. a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
  3. b = [(2, 'aa', 'dsad')]
  4. data = set(a).intersection(set(b))
  5. print(type(data))
  6. print(data)
  7. <class "set">
  8. {(2, 'aa', 'dsad')}
  9. data2 = list(data)
  10. print(type(data2))
  11. print(data2)
  12. <class "list">
  13. [(2, 'aa', 'dsad')]

交集

list列表enumerate()方法加下标

  1. seasons = ['Spring', 'Summer', 'Fall', 'Winter']
  2. list(enumerate(seasons))
  3. [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
  4. list(enumerate(seasons, start=1)) # 下标从 1 开始
  5. [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

list enumerate()

循环去掉列表中的空格

  1. list1 = ['1',' ','2',' ','3','4',' ']
  2. while ' ' in list1:
  3. list1.remove(' ')
  4. ## ['1', '2', '3', '4']

list remove()