Python3 基础学习笔记 C02【列表】

CSDN 课程推荐:《8小时Python零基础轻松入门》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实战》、《跟老齐学Python:数据分析》和《Python大学实用教程》畅销图书。


Python3 基础学习笔记第二章【列表】

目录

  • 【2.1】列表是什么
    • 【2.1.1】访问列表元素
    • 【2.1.2】列表切片
    • 【2.1.3】使用列表中的各个值
    • 【2.1.4】修改元素
    • 【2.1.5】添加元素
    • 【2.1.6】删除元素
    • 【2.1.7】使用方法 index() 查找指定元素位置
    • 【2.1.8】使用方法 count() 统计指定元素数量
    • 【2.1.9】清空列表
  • 【2.2】组织列表
    • 【2.2.1】使用方法 sort() 对列表进行永久排序
    • 【2.2.2】使用函数 sorted() 对列表进行临时排序
    • 【2.2.3】使用方法 reverse() 对列表进行反向排序
    • 【2.2.4】确定列表的长度
    • 【2.2.5】合并列表


【2.1】列表是什么

列表由一系列按特定顺序的元素组成,在 Python 中用方括号( [ ] )来表示列表,并用逗号来分隔其中的元素,例:

list1 = ['a','b','c','d','e','f']
list2 = ['abc', 'xyz', 2018, 2020]
list3 = [1, 2, 3, 4, 5 ,6]
list4 = ["a", "b", "c", "d"]
print(list1, list2, list3 ,list4)

输出结果如下:

['a', 'b', 'c', 'd', 'e', 'f'] ['abc', 'xyz', 2018, 2020] [1, 2, 3, 4, 5, 6] ['a', 'b', 'c', 'd']

【2.1.1】访问列表元素

列表是有序集合,因此要访问列表的元素,只需要将该元素的位置或索引告诉Python即可,注意:在Python中的第一个列表元素的索引为0,而不是1

list = ['a','b','c','d','e','f']
print(list[0])
print(list[3])
print(list[-1])   #Python为访问最后一个列表元素提供了一种特殊语法,通过将索引指定为-1,可以让Python返回最后一个列表元素
print(list[-3])

输出结果如下:

a
d
f
d

【2.1.2】列表切片

list = ['a','b','c','d','e','f']
print(list[:])     #省略全部,代表截取全部内容,可以用来将一个列表拷给另一个列表
print(list[:3])     #省略起始位置的索引,默认起始位置从头开始,结束位置索引为2
print(list[3:])     #省略结束位置的索引,默认结束位置为最后一个,开始位置索引为3
print(list[1:4])    #开始位置索引为1,结束位置索引为3,顾头不顾尾
print(list[4:1])    #从左到右索引,因此为空值
print(list[-1:-3])   #从左到右索引,因此为空值
print(list[-3:-1])   #开始位置索引为倒数第三个,结束位置索引为倒数第二个
print(list[1:5:2])   #开始位置索引为1,结束位置索引为4,间隔2
print(list[5:1:-1])   #反向取值,开始位置索引为5,结束位置索引为2
print(list[::-1])    #反向取值,反向输出列表

输出结果如下:

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'b', 'c']
['d', 'e', 'f']
['b', 'c', 'd']
[]
[]
['d', 'e']
['b', 'd']
['f', 'e', 'd', 'c']
['f', 'e', 'd', 'c', 'b', 'a']

【2.1.3】使用列表中的各个值

可像使用其他变量一样使用列表中的各个值,例如,我们可以使用拼接根据列表中的值来创建消息:

list = ['python', 'c', 'c++', 'java', 'php']
message = "My favorite language is " + list[0].title() + "!"
print(message)

输出结果如下:

My favorite language is Python!

【2.1.4】修改元素

修改列表元素的语法与访问列表元素的语法类似,要修改列表元素,可指定列表名和要修改的元素的索引,再次指定该元素的新值:

names = ['zhangsan', 'lishi', 'wanger', 'liming', 'xiaowang']
print(names)
names[1] = 'lifang'
print(names)

输出结果如下:

['zhangsan', 'lishi', 'wanger', 'liming', 'xiaowang']
['zhangsan', 'lifang', 'wanger', 'liming', 'xiaowang']

【2.1.5】添加元素

- 使用方法 append() 在列表末尾添加元素

list = ['a', 'b', 'c', 'd', 'e', 'f']
print(list)
list.append('g')
print(list)

输出结果如下:

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'b', 'c', 'd', 'e', 'f', 'g']

- 使用方法 insert() 在列表指定位置添加元素

list = ['a', 'b', 'c', 'd', 'e', 'f']
print(list)
list.insert(2,"h")    #其中括号里的数字表示要插入的位置,此后面的元素将右移一个位置
print(list)

输出结果如下:

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'b', 'h', 'c', 'd', 'e', 'f', 'g']

【2.1.6】删除元素

- 使用 del 语句删除元素

list = ['a', 'b', 'c', 'd', 'e', 'f']
print(list)
del list[3]
print(list)

输出结果如下:

list = ['a', 'b', 'c', 'd', 'e', 'f']
list = ['a', 'b', 'c', 'e', 'f']

- 使用方法 pop() 删除最后一个元素
方法 pop() 可以删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类比:列表就像是一个栈,而删除列表末尾的元素就相当于弹出栈顶元素:

list = ['a', 'b', 'c', 'd', 'e', 'f']
print(list)
new_list = list.pop()
print(list)
print(new_list)

输出结果如下:

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'b', 'c', 'd', 'e']
f

- 使用方法 pop() 删除任意位置元素
可以使用 pop() 来删除列表中任何位置的元素,只需要在括号中指定要删除的元素的索引即可:

list = ['a', 'b', 'c', 'd', 'e', 'f']
print(list)
new_list = list.pop(1)
print(list)
print(new_list)

输出结果如下:

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'c', 'd', 'e', 'f']
b

- 使用方法 remove() 删除未知位置元素
当我们不知道元素的位置,只知道元素的值的时候,就可以使用方法 remove()

list = ['a', 'b', 'c', 'd', 'e', 'f']
print(list)
list.remove('d')
print(list)

输出结果如下:

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'b', 'c', 'e', 'f']

【2.1.7】使用方法 index() 查找指定元素位置

list = ["a", "b", "c", "d", "e", "a"]
print(list.index('c')) 

输出结果如下:

2

【2.1.8】使用方法 count() 统计指定元素数量

list = ["a", "b", "c", "d", "e", "a"]
print(list.count('a')) 

输出结果如下:

2

【2.1.9】清空列表

list = ["a", "b", "c", "d", "e", "a"]
list.clear()
print(list)

输出结果如下:

[]

【2.2】组织列表

在创建的列表中,元素的排列顺序常常是无法预测的,因为我们并非总能控制用户提供数据的顺序。有时候,我们希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用

【2.2.1】使用方法 sort() 对列表进行永久排序

使用方法 sort() 可以对列表按照特殊符号,数字,大写字母,小写字母顺序进行永久排序:

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)

输出结果如下:

['audi', 'bmw', 'subaru', 'toyota']

还可以按与字母顺序相反的顺序排列列表元素,只需要向 sort() 方法传递参数 reverse = True 就可以了:

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse = True)
print(cars)

输出结果如下:

['toyota', 'subaru', 'bmw', 'audi']

【2.2.2】使用函数 sorted() 对列表进行临时排序

要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序:

cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars)
print("\nHere is the sorted list:")
print(sorted(cars))
print("\nHere is the sorted reverse list:")
print(sorted(cars, reverse=True))
print("\nHere is the original list again:")
print(cars)

输出结果如下:

Here is the original list:
['bmw', 'audi', 'toyota', 'subaru']Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']Here is the sorted reverse list:
['toyota', 'subaru', 'bmw', 'audi']Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru']

【2.2.3】使用方法 reverse() 对列表进行反向排序

要反转列表元素的排列顺序,可使用方法 reverse()

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.reverse()
print(cars)

输出结果如下:

['subaru', 'toyota', 'audi', 'bmw']

【2.2.4】确定列表的长度

使用函数 len() 可以快速获悉列表的长度:

>>>cars = ['bmw', 'audi', 'toyota', 'subaru']
>>>len(cars)
4

【2.2.5】合并列表

- 使用方法 extend() 合并列表

list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c', 'd']
list1.extend(list2)    #将列表list2添加到list1当中去
print(list1)
print(list2)

输出结果如下:

[1, 2, 3, 4, 'a', 'b', 'c', 'd']
['a', 'b', 'c', 'd']

- 使用 “+” 号合并列表

list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c', 'd']
print(list1 + list2)
print(list2 + list1)

输出结果如下:

[1, 2, 3, 4, 'a', 'b', 'c', 'd']
['a', 'b', 'c', 'd', 1, 2, 3, 4]

- 使用切片合并列表

list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c', 'd']
list1[len(list1) : len(list1)] = list2   #len(list1)代表要将list2插入list1中的位置
print(list1)list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c', 'd']
list1[0 :0] = list2
print(list1)list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c', 'd']
list1[1:1] = list2
print(list1)

输出结果如下:

[1, 2, 3, 4, 'a', 'b', 'c', 'd']
['a', 'b', 'c', 'd', 1, 2, 3, 4]
[1, 'a', 'b', 'c', 'd', 2, 3, 4]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PWN-PRACTICE-BUUCTF-28

PWN-PRACTICE-BUUCTF-28wustctf2020_name_your_dogjudgement_mna_2016gyctf_2020_some_thing_interestingxman_2019_formatwustctf2020_name_your_dog Partial RELRO,可修改got表 scanf_got距离Dogs56个字节 当index为-7时,即可改写scanf_got为shell的地…

敏捷开发之Scrum扫盲,及敏捷开发中XP与SCRUM的区别

敏捷开发之Scrum扫盲篇 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述S…

有关不蒜子访问统计无法显示的解决方法

十月初,不蒜子统计失效了,如下图: 进入不蒜子官网看看: 问题来了,官网写着:因七牛强制过期『dn-lbstatics.qbox.me』域名,与客服沟通无果,只能更换域名到『busuanzi.ibruce.info』…

PWN-PRACTICE-BUUCTF-29

PWN-PRACTICE-BUUCTF-29actf_2019_babyheapwustctf2020_easyfast强网杯2019 拟态 STKOFhitcon_2018_children_tcacheactf_2019_babyheap UAF,创建两个非0x10大小的chunk,比如两个0x20 程序会创建四个chunk,大小依次为0x10,0x20&a…

SCRUM与XP区别

敏捷开发 1、敏捷的含义 敏捷开发是一种以人为核心、迭代、增量的开发方法。在敏捷开发中,把一个大项目分为多个相互联系,可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 上面提到3个关键词,下…

Python3 基础学习笔记 C03【操作列表】

CSDN 课程推荐:《8小时Python零基础轻松入门》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实…

PWN-PRACTICE-BUUCTF-30

PWN-PRACTICE-BUUCTF-30suctf_2018_stackwdb_2018_3rd_soEasy[BSidesCF 2019]Runitqctf2018_stack2suctf_2018_stack 栈溢出,ret2text,返回地址不能直接是next_door的起始地址 设置返回地址为0x40067A,开始设置系统调用的参数以及系统调用号…

Java编写程序时出现警告:Resource leak: 'xxx' is never closed 解决方案

菜鸟新手,学校在教Java,作业里面要求我们编程实现运算一个简单的程序,程序写好了,却发现冒出一个警告,如下图: 百度了一下,意思是申明了名为a的数据输入扫描仪(Scanner&#xff09…

ASP.Net请求处理机制初步探索之旅 - Part 1 前奏

开篇:ASP.Net是一项动态网页开发技术,在历史发展的长河中WebForm曾一时成为了ASP.Net的代名词,而ASP.Net MVC的出现让这项技术更加唤发朝气。但是,不管是ASP.Net WebForm还是ASP.Net MVC在请求处理机制上大部分都是相同的&#xf…

Python3 基础学习笔记 C04【if 语句】

CSDN 课程推荐:《8小时Python零基础轻松入门》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实…

ASP.Net请求处理机制初步探索之旅 - Part 2 核心

开篇:上一篇我们了解了一个请求从客户端发出到服务端接收并转到ASP.Net处理入口的过程,这篇我们开始探索ASP.Net的核心处理部分,借助强大的反编译工具,我们会看到几个熟悉又陌生的名词(类):Http…

Python3 基础学习笔记 C05【字典】

CSDN 课程推荐:《8小时Python零基础轻松入门》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实…

REVERSE-COMPETITION-0xGame2021

REVERSE-COMPETITION-0xGame2021Signin: User FriendlyInstallerOur Compilation StoryPacketRandom ChaosNeverlandRoundaboutDespacitoSecret BaseMazeZero ThreeMirrorThread_TLS茶谈室JunkertownSignin: User Friendly 64位exe,ida打开,在main函数中…

ASP.Net请求处理机制初步探索之旅 - Part 3 管道

开篇:上一篇我们了解了一个ASP.Net页面请求的核心处理入口,它经历了三个重要的入口,分别是:ISAPIRuntime.ProcessRequest()、HttpRuntime.ProcessRequest()以及HttpApplication.Init()。其中,在HttpApplication的Init(…

Python3 基础学习笔记 C06【用户输入和 while 循环】

CSDN 课程推荐:《8小时Python零基础轻松入门》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实…

PWN-COMPETITION-GeekChallenge2021

PWN-COMPETITION-GeekChallenge2021check in恋爱小游戏ret2xxone恋爱小游戏2.0easyfmteasycanaryret2babypwn777check in 66s内解答200道四则运算的题目即可getshell 参与运算的数和运算符都会打印,直接写脚本即可 # -*- coding:utf-8 -*- from pwn import * cont…

ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期

开篇:上一篇我们了解了所谓的请求处理管道,在众多的事件中微软开放了19个重要的事件给我们,我们可以注入一些自定义的业务逻辑实现应用的个性化设计。本篇,我们来看看WebForm模式下的页面生命周期。 (1)Par…

Python3 基础学习笔记 C07【函数】

CSDN 课程推荐:《8小时Python零基础轻松入门》,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员;已出版《跟老齐学Python:轻松入门》《跟老齐学Python:Django实…

REVERSE-COMPETITION-GeekChallenge2021

REVERSE-COMPETITION-GeekChallenge2021Re0刘壮桌面美化大师买ActivityRe1调试珍惜生命new_languageeasypycBrute_forcewin32wasm猜拳have_a_teaRe0 64位exe,ida打开,main函数中没发现什么重要的逻辑 ShiftF12打开字符串窗口,直接找到flag明…

ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程

开篇:上一篇我们了解了在WebForm模式下一个Page页面的生命周期,它经历了初始化Init、加载Load以及呈现Render三个重要阶段,其中构造了页面控件树,并对页面控件树进行了大量的递归操作,最后将与模板结合生成的HTML返回给…