美文网首页
序列类型-列表的操作

序列类型-列表的操作

作者: 风清云淡Python | 来源:发表于2018-11-09 14:27 被阅读0次
共有操作

列表同元组一样,是一个有序的序列,其中包括0或多个对象引用,支持表5-6中序列共用的运算和函数。但是不同于元组和字符串的是,列表的长度和内容都是可变的,可自由对列表中数据项进行增加、删除或替换。列表没有长度限制,元素类型可以不同。因此,列表的应用非常广泛。
列表常用的创建方法有几种:可以通过显式的数据赋值生成,元素之间用逗号分隔;可以使用 [ ] 生成空列表,然后利用相关方法(如append()、extend()、insert()等)往列表中添加元素;可以使用list()函数将元组或字符串转换成列表。
由于列表是可变的,有关列表的操作除了表1中的共用的函数和运算外,表3列出了列表类型的一些常用方法与函数。


列表的方法

Python为列表类型提供了一系列内置操作,包括append()insert()pop()remove()等函数,能够很方便的处理上述列表元素变化的情况。

添加列表元素

Python提供了append()insert()等函数,实现向一个列表增加新元素的功能。

(1). 在列表尾部添加元素

在Python中,可以使用append()方法向一个列表的尾部追加一个元素,其基本语法如下:

source_list.append(obj)

其中,

  • source_list:为待修改的列表
  • obj:为待插入的元素
    例如,要向guests列表尾部增加客人Hu qi,相应的语句为:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 向guests列表尾部追加一个名为Hu qi的客人
guests.append('Hu qi')
# 输出新的guests列表
print(guests)

输出结果为:
['Zhang san','Li si','Wang wu','Zhao liu','Hu qi']

(2). 在列表指定位置添加元素

Python也提供了insert()方法,可以在列表任意指定位置插入元素,其基本语法为:

source_list.insert(index,obj)

其中,

  • source_list:为待修改的列表
  • index:为待插入的位置索引
  • obj:为待插入的元素
    注意:在Python中,列表起始元素的位置索引为0
    例如,要向guests列表中Zhang san的后面增加客人Hu qi,则相应的语句为:
# 创建并初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 向guests列表Zhang san后面增加一个名为Hu qi的客人
guests.insert(1,'Hu qi')
# 输出新的guests列表
print(guests)

输出结果为:
['Zhang san','Hu qi','Li si','Wang wu','Zhao liu']

修改列表元素

Python中修改列表元素的方法为,直接将列表中要修改的元素索引指出,然后为其指定新值。其基本语法如下:

source_list[index] = obj

其中,

  • source_list:为待修改的列表
  • index:为待修改元素的位置索引
  • obj:为待元素的新值
    例如,将请客名单guests列表中的Wang wu改为Wang shi。
    ,则相应的语句为:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 将列表中的`Wang wu`改为`Wang shi`
guests[2] = 'Wang shi'
# 输出新的guests列表
print(guests)

输出结果为:
['Zhang san','Li si','Wang shi','Zhao liu']

删除列表元素

Python提供了多种不同的方法来实现对列表中元素的删除操作,包括根据元素索引位置或者元素值删除元素的方法。

(1). 删除指定位置的元素

del方法
在Python中,调用del函数能够删除指定索引位置的元素,其基本语法如下:

del source_list[index]

其中,

  • source_list:为待修改的列表
  • index:为待删除元素的位置索引
    例如,将请客名单guests列表中的Zhang san删除。
    ,则相应的语句为:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 将列表中的`Zhang san`删除
del guests[0]
# 输出新的guests列表
print(guests)

输出结果为:
['Li si','Wang wu','Zhao liu']

pop方法
Python还提供了pop()方法来删除元素,该方法将从源列表删除对应元素,同时返回被删除的元素。其基本语法如下:

deleted_obj = source_list.pop(index)

其中,

  • deleted_obj:为保存被删除元素的变量,可根据需要自由命名
  • source_list:为待修改的列表
  • index:为待删除元素的位置索引
    注意:index参数为可选项,不填则默认删除列表末尾的元素
    例如,将请客名单guests列表中的Zhang san删除。
    ,则相应的语句为:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 将列表中的`Zhang san`删除
deleted_obj = guests.pop(0)
# 输出被删除的元素以及删除后的guests列表
print(deleted_obj)
print(guests)

输出结果为:
Zhang san
['Li si','Wang wu','Zhao liu']

(2). 删除指定值对应的元素

有些时候我们并不知道要删除元素的位置索引,怎么办呢?别着急,Python还提供了remove()方法,可以直接通过元素值来删除对应的元素。其基本语法如下:

source_list.remove(obj)

其中,

  • source_list为待修改的列表
  • obj为待删除元素的值
    注意:如果列表中有多个值为obj的元素,remove仅删除位置索引最靠前的那个元素
    例如,将请客名单guests列表中的Zhang san删除。
    ,则相应的语句为:
# 初始化guests列表,列表中有多个名为Zhang san的客人
guests=['Zhang san','Li si','Wang wu','Zhao liu','Zhang san']
# 将列表中的`Zhang san`删除
guests.remove('Zhang san')
# 输出新的guests列表
print(guests)

输出结果为:
['Li si','Wang wu','Zhao liu','Zhang san']


列表元素排序

Python针对列表数据结构内置提供了sort()方法,实现对列表元素的排序功能。其基本语法如下:

source_list.sort(reverse=True)

其中,

  • source_list:待排序的列表
  • sort:列表排序函数的语法关键词
  • reverse:sort函数的可选参数,如果设置其值为True,则进行反向从大到小排序,如果设置为False或者不填写该参数,则默认进行正向从小到大排序。

例如,给定一个客人列表guests, 我们对其按照字母排序如下:

guests = ['zhang san','li si','wang wu','sun qi','qian ba']
guests.sort()
print(guests)
guests.sort(reverse=True)
print(guests)

程序输出结果:
['li si','qian ba','sun qi','wang wu','zhang san']
['zhang san','wang wu','sun qi','qian ba','li si']

注意,sort函数会直接作用于待排序的列表并修改其排序

数字列表的创建、对数字列表进行简单的统计运算

可以利用 range()list()sum()等函数方法实现我们的目标。

range()函数

Python提供了range()函数,能够用来生成一系列连续增加的数字,其基本使用语法有如下三种:

range(lower_limit,upper_limit,step)

其中,

  • lower_limit:生成系列整数的下限整数,不填该参数则默认为从0开始。生成的整数从此数开始,包括该数。

  • upper_limit:生成系列整数的上限整数,必填参数。生成的整数要小于该上限。

  • step:在下限和上限之间生成系列整数之间的间隔步长,不填该参数则默认步长为1

  • 注意,range()函数的三个参数都只能为整数。如果range函数中仅一个参数,则该参数表示upper_limit;如果仅两个参数,则分别表示lower_limitupper_limit
    例如,要生成1~6之间步长为2的系列整数:

for i in range(1,6,2):
    print(i)

输出结果:

1
3
5

基于range()函数创建数字列表

我们可以通过range()函数,利用Python列表提供的append()插入功能创建一个列表。
例如,我们要创建一个包含0~9 10个整数的平方的列表:

# 声明一个列表变量
numbers = []
# 利用append()函数和range()函数向列表插入目标元素
for i in range(10):
    number = I**2
    numbers.append(number)
print(numbers)

输出结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

使用list()函数和range()函数创建数字列表

我们可以利用list()函数将range()生成的系列数字直接转为列表,这时候range()函数的返回值将会作为list()函数的参数,输出为一个数字列表。其基本使用语法如下:

data_list = list(range(lower_limit,upper_limit,step))

其中,

  • list:列表函数的语法关键词
  • range:函数语法关键词
  • data_list:最终生成的列表变量

例如,我们要生成并输出1~5的数字列表:

data_list = list(range(1,6))
print(data_list)

输出结果:
[1,2,3,4,5]

对数字列表进行简单的统计运算

Python中有一些专门处理数字列表简单的统计运算的函数,利用这些函数可以轻松找到数字列表的最小值、最大值和总和等一系列统计运算。其基本语法如下:

min_value = min(data_list)
max_value = max(data_list)
sum_value = sum(data_list)

其中,

  • min:数字列表求最小值的语法关键字
  • max:数字列表求最大值的语法关键字
  • sum:数字列表求和的语法关键字
    具体使用示例如下:
numbers = [2,4,11,1,21,32,5,8]
print('The min number is',min(numbers))
print('The max number is',max(numbers))
print('The sum is',sum(numbers))

输出结果:

The min number is 1
The max number is 32
The sum is 84

列表切片

Python切片是对一个列表取其部分元素获得一个子序列的常见操作,切片操作的返回结果类型与被切片的对象一致。要创建一个已有列表的切片,通过指定切片的第一个列表元素和最后一个列表元素的索引号即可。其基本语法如下:

list_slice = source_list[start:end:step]

其中,

  • source_list:被切片的源列表

  • list_slice:切片后生成的子序列列表

  • start:切片起始索引位置,省略则从头开始

  • end:切片结束索引位置,省略则切至列表末尾

  • step:切片步长,可选参数,表示每N个元素取一个,默认为1

  • 注意:切片和range()函数一样,Python会自动到达所指定切片结束索引位置的前面一个元素停止。
    例如,下面是我已经点好的菜名列表,现在朋友点的菜单中包含我的前三个菜名,输出朋友的菜单:

my_menu = ['fish','pork','pizza','carrot']
print(my_menu[1:4:2])
print(my_menu[:3])
print(my_menu[2:])

输出结果:
['pork','carrot']
['fish','pork','pizza']
['pizza','carrot']
负数索引返回离列表末尾相应间隔的元素。列表末尾元素的索引是从-1开始的。
例如,朋友的菜单是包含我的菜单最后3个菜名:

my_menu=['fish','pork','pizza','carrot']
print(my_menu[-3:])

输出结果:
['pork','pizza','carrot']

*注:list[::-1]可对列表进行反转

任务1 建立列表

输入一个表示姓名的字符串,建立一个只含有此字符串的列表lt1,并输出lt1的值,例如,输入字符串为“李海”,则输出[“李海”]

任务2 加入元素

输入3个整数,分别代表数学,语文,英语的分数,生成列表lt2,将列表lt2加到lt1后面,输出更新后的lt1。例如,输入的整数为:90 79 100,表示对应课程的分数,则输出:[“李海”,90,79,100]

  • 提示:可以使用append(),extend(),insert()“+”运算,但是要注意他们的差别

任务3 插入元素

从键盘输入一个数字字符串,并在列表lt1的起始位置插入这个数字字符串,代表学号,输出lt1的值。例如:输入:“201705090345”,输出lt1的值为:[“201705090345”,“李海”,90,79,100]

  • 提示:可以使用insert()在首元素前面进行插入。

任务4 列表的删除

找出列表lt2中的最小的元素,在列表lt1中删去此元素,删除后,再输出lt1的值

  • 提示:使用内置min()函数求出lt1中元素的最小值,用列表的方法remove()pop()来移除此元素。也可以用内置函数del()来删除指定位置的元素。注意参数remove()的参数是要删除的具体元素,而del()
    pop()的圆括号中要填写整数,表示要删除的元素的索引号。

任务5 列表的反转与排序

将lt2列表中的元素按从小大到大顺序排列输出,再将lt1复制给lt3,将lt3反转输出。例如:lt2的值是[90,79,100],则从小到大输出为[79,90,100],lt3反转的结果为[100,90,“李海”,“201705090345”]

  • 提示:本任务使用列表的方法有:copy()sort()reverse()

测试说明
注意:输入数据时,一行只输入一个数。本关1-5个任务评测输入输出样例如下:
输入测试数据:

李海
90
79
100
201705090345
输出测试结果:

[“李海”]
[“李海”,90,79,100]
[“201705090345”,“李海”,90,79,100]
[“201705090345”,“李海”,90,100]
[79,90,100]
[100,90,“李海”,“201705090345”]

#列表基本操作

#任务1代码
s1=input()
#Begin 
lt1=[s1]
#End
print(lt1)

#任务2 在begin和end间空白处填写代码
a=int(input())
b=int(input())
c=int(input())
#begin
lt2 = [a,b,c]
lt1 = lt1+lt2
#end
print(lt1)

#任务3 在begin和end间空白处填写代码
id=input()
#begin
lt1.insert(0,id)
#end
print(lt1)

#任务4 在begin和end间空白处填写代码
#begin
lt1.remove(min(lt2))
print(lt1)
#end

#任务5 在begin和end间空白处填写代码
#begin
lt2.sort()
print(lt2)
lt3=lt1.copy()
print(lt3[::-1])
#end

积极的人像太阳照到哪里哪里亮,消极的人像月亮初一十五不一样.

running.png

相关文章

  • Python初学(十八)

    列表类型的操作 列表的操作函数 列表类型继承序列类型特点,有一些通用的操作函数 min(ls)和max(ls)分别...

  • Python中的可变类型与不可变类型

    1.列表操作 2.序列类型可用的内建函数 3.序列操作符 4.列表类型内建函数 5.列表解析 列表解析的一般语法:...

  • 序列类型-列表的操作

    列表同元组一样,是一个有序的序列,其中包括0或多个对象引用,支持表5-6中序列共用的运算和函数。但是不同于元组和字...

  • 6.1 集合类型及操作

    六、组合数据类型 6.1 集合类型及操作 6.2 序列类型及操作元组类型、列表类型 6.3 实例9:基本统计值计算...

  • 6.2 序列类型及操作

    六、组合数据类型 6.1 集合类型及操作 6.2 序列类型及操作元组类型、列表类型 6.3 实例9:基本统计值计算...

  • 序列:字符串、列表和元组

    序列属性(字符串、列表、元组共有的性质) 标准类型操作符 同数字一样有 < > <= >= == != 序列类型操...

  • Python基础009--序列类操作符in、not in及切片、

    python中的序列类型主要有三种:字符、列表、元组 序列类型操作符 步长索引语法:list[start:end:...

  • 笔记-Python-内置对象-列表

    列表是一个有序的序列结构,序列中的元素可以是不同的数据类型,由于列表是一个序列,所以列表可以进行一系列操作,如索引...

  • 第二章 列表

    列表 列表项就是集合 列表的分类:有序列表 无序列表(常用) 无序列表类型 -type取值disc 实体圆...

  • python序列类型包括哪三种?

    python序列类型包括哪三种 python序列类型包括:列表、元组、字典 列表:有序可变序列 创建:userli...

网友评论

      本文标题:序列类型-列表的操作

      本文链接:https://www.haomeiwen.com/subject/uyqoxqtx.html