当前位置: 首页 > news >正文

Python学习笔记(1)-列表

 

 

列表是什么?

列表由一系列按特定顺序排列的元素组成。列表看起来像这样:[1,2,3,4,1]。在列表中,可以由零个或多个元素组成,元素之间用逗号分开,具有相同值元素允许出现多次

使用[ ]或list()创建列表

  例如创建一个空列表 

  empty_list = [ ]或者 empty_list = list()

使用list()将其他数据类型转换成列表

字符串列表:

>>> list('cat')

['c', 'a', 't']

元组列表:

>>> num = (1,2,3)

>>> list(num)

[1, 2, 3]

使用[offset]获取元素

从0开始计算,也可以用负数,尾部为-1

>>> a = [2,3,4,5]

>>> a[0]

2

>>> a[-1]

5

使用index列表元素的位置

>>> a

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

>>> a.index('a')

3

当指定偏移量超出列表范围,会产生IndexError错误。

利用切片取得子列表

[first:end:(step)]

>>> a = [1,2,3,4,5,6]

>>> a[::1]

[1, 2, 3, 4, 5, 6]

>>> a[::2]

[1, 3, 5]

>>> a[::-2]

[6, 4, 2]

使用[offset]修改元素

>>> a = [1,2,3,4,5,6]

>>> a[0]=10

>>> a

[10, 2, 3, 4, 5, 6]

在列表末添加元素(append)

>>> a = [1,2,3]

>>> a.append(4)

>>> a

[1, 2, 3, 4]

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

>>> a

[1, 2, 3, 4]

>>> a.insert(1,'happy')

>>> a

[1, 'happy', 2, 3, 4]

一个列表合并到另一个列表(extend)

>>> a = [1,2,3,4]

>>> b = ['a','b','c']

>>> a.extend(b)

>>> a

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

删除位置元素

使用del语句删除任何位置元素

>>> a

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

>>> del a[0]

>>> a

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

使用方法pop删除元素

列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素

>>> a

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

>>> a.pop()

'c'

>>> a

[2, 3, 4, 'a', 'b']

>>> a.pop(2)

4

>>> a

[2, 3, 'a', 'b']

根据值删除元素(remove)

>>> a

[2, 3, 'a', 'b']

>>> a.remove(2)

>>> a

[3, 'a', 'b']

使用列表

列表用于保存变量

>>> [1,2,3,4,5]

列表用于循环

>>> a = [0,1,2,3,4]

>>> for i in a :#等价于for i in rang(5)

    print(i)

    

0

1

2

3

4

in 和 not in 操作符

可以确定一个值是否在列表中,返回布尔值

>>> 1 in [0,1,2,3,4]

True

>>> 5 not in [0,1,2,3,4]

True

>>> 1 not in [0,1,2,3,4]

False

>>> 5 in [0,1,2,3,4]

False

多重赋值技巧

>>> one,two,three = [1,2,3]

>>> one

1

>>> two

2

>>> three

3

变量的数目和列表必须严格相等,否则Python将ValueError

常用方法

使用len()获取列表长度

>>> a

[0, 1, 2, 3, 4]

>>> len(a)

5

使用count()记录特定值出现的次数

>>> a = [1,2,3,4,3,5,1,1,3,1,3]

>>> a.count(1)

4

>>> a.count(3)

4

使用sort()重新排列元素

Python提供了二个函数

列表方法sort()会读对原列表进行排序,改变原列表内容;

通用函数sorted()则会返回排好序的列表副本,原列表内容不变。

>>> a = [5,4,3,2,1]

>>> a.sort()

>>> a

[1, 2, 3, 4, 5]

>>> a = [5,4,3,2,1]

>>> sorted(a)

[1, 2, 3, 4, 5]

>>> a

[5, 4, 3, 2, 1]

sort()方法注意

  1. 当场对列表排序,不要写出a = a.sort()这样的代码,试图记录返回值
  2. 不能对既有数字又有字符串值的列表排序,引起TypeError错误
  3. 对字符串排序时,使用"ASCII字符顺序"

使用join()转换为字符串

join()是split()的逆过程

>>> a = ['hello','world']

>>> b = ','.join(a)

>>> b

'hello,world'

>>> c = b.split(',')

>>> c

['hello', 'world']

使用=赋值,使用copy()赋值

如果使用=赋值多个变量,改变其中的任何一处会造成其他变量对应的值也被修改

>>> a = [1,2,3]

>>> b = a

>>> b[0] = 'a'

>>> a

['a', 2, 3]

>>> b

['a', 2, 3]

>>> a[2] = 'b'

>>> b

['a', 2, 'b']

>>> a

['a', 2, 'b']

因为a 和 b 指向的是同一个对象,因此,无论我们是通过 a 还是通过 b 来修改列表的内容,其结果都会作用于对方

我们可以通过下面3种方法,将一个列表的值复制到另一个新的列表中:

  1. b = a.copy()
  2. c = list(a)
  3. d = a[:]

b、c、d都是a的复制,改变任意一个变量都不会改变其他变量

转载于:https://www.cnblogs.com/powercai/p/7779664.html

相关文章:

  • 【20171103中】sqli-libs Less 40-49
  • 迷宫问题
  • js:字符串(string)转json
  • 硬币收集问题
  • 无缝连续滚动
  • Django--权限组件
  • 电子凭证 : Java 生成 Pdf
  • 前端资源管理工具sourcetree
  • Sourcetree中切换到其他分支,临时分支的这次提交丢失
  • [总结]FFMPEG视音频编解码零基础学习方法
  • MySQL5.7 不同操作系统下的主从配置
  • 关于神经网络中的padding
  • 工厂方法模式(Factory Method)
  • selectedIndex返回被选中的option的index.
  • Uncaught (in promise)
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Fastjson的基本使用方法大全
  • Flannel解读
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JAVA之继承和多态
  • JDK9: 集成 Jshell 和 Maven 项目.
  • js如何打印object对象
  • oldjun 检测网站的经验
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Sublime text 3 3103 注册码
  • vue中实现单选
  • 彻底搞懂浏览器Event-loop
  • 码农张的Bug人生 - 见面之礼
  • 强力优化Rancher k8s中国区的使用体验
  • 一道闭包题引发的思考
  • 1.Ext JS 建立web开发工程
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (1)STL算法之遍历容器
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (转)菜鸟学数据库(三)——存储过程
  • . NET自动找可写目录
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net MySql
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET开发不可不知、不可不用的辅助类(一)
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • @Conditional注解详解
  • @在php中起什么作用?
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [] 与 [[]], -gt 与 > 的比较
  • [Angular 基础] - 表单:响应式表单
  • [C#]C# OpenVINO部署yolov8图像分类模型