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

摘录一下Python列表和元组的学习笔记

1 基础概念

列表一个值,列表值指的是列表本身,而不是列表中的内容

列表用[]表示

列表中的内容称为 表项

len()函数可以显示列表中表项的个数,比如下面这个例子

spam = ['cat', 'bat', 'dog', 'rat']print(len(spam))

列表的范围选取中,比如

spam = [‘cat’, ‘bat’, ‘rat’, ‘dog’],如果用spam[1:3],选中的内容是bat、rat和dog

两个数字中,第一个是开始的下标,第二个是结束处的下标,但不包括结束处

用del语句从列表中删除值,不过一般del语句不常使用

2 列表方法

  • index():用于查找列表中的内容,如果存在,返回0,不存在报错

  • append():在列表末尾添加内容

  • insert():可以指定位置插入内容

  • remove():用于产出列表中指定的内容

  • sort():用于排列列表,用sort()时不能数字和字符混用

    • 数字按照数值大小排列
      - 字符汉中ASCII排列

这几个方法只使用于列表

spam = ['cat', 'bat', 'dog', 'rat']
print(spam.index('cat'))
spam.append('rabbit')
print(spam)
spam.insert(0, 'bird')
print(spam)
spam.remove('cat')
print(spam)
spam.sort()
print(spam)

3 元组和列表的强制类型转换

list()可以将强制转换为列表

tuple可以将强制转换为元组

spam = 'hello'
print(list(spam))
llist = list(spam)
llist.append('egg')
print(llist)print(tuple(spam))

先定义一个spam变量,然后用list()将spam强制转换为列表类型

在将强制类型转换后的列表传递给llist,可以看到llist可以进行列表操作

这里有一点需要注意,举个例子说明这一点

spam = ['1', '2', '3', '4']
print(spam)
tmp = spam
print(tmp)
tmp[1] = '666'
print(tmp)
print(spam)

在第5行代码中,我只对tmp进行了操作,但当我打印spam的时候,发现spam的内容也跟着改变了

这是因为变量tmp是对列表的引用,而不是对列表值本身

有一点需要注意,tmp[n]中的n不能超过列表spam的长度

如果只想改变tmp的内容,不改变spam中的内容,可以用下面的方法

4 copy和deepcopy函数

import copyspam = [1, 2, 3, 4]
chee = copy.copy(spam)
print(spam)
print(chee)
chee.append(5)
print(spam)
print(chee)print('******************')deep = copy.deepcopy(spam)
print(deep)
print(spam)
deep.append(6)
print(deep)
print(spam)

可以看到在使用copy 和deepcopy函数后,再发生更改并没有改变spam的内容

至于这几种方法有什么区别,等我再研究研究

5 列表和元组的区别
列表元组
符号为:[]符号为:()
可以修改、添加、删除不能修改、添加、删除
http://www.lryc.cn/news/27887.html

相关文章:

  • 【量化金融】收益率、对数收益率、年华收益、波动率、夏普比率、索提诺比率、阿尔法和贝塔、最大回撤
  • 1_机器学习概述—全流程
  • VUE中给对象添加新属性时,界面不刷新怎么办
  • 视频号频出10w+,近期爆红的账号有哪些?
  • 企业寄件现代化管理教程
  • django 在网页显示后台进度
  • 机器学习库(Numpy, Scikit-learn)
  • Linux操作系统学习(进程替换)
  • 【C++从入门到放弃】类和对象(中)———类的六大默认成员函数
  • 白盒测试重点复习内容
  • 【13】linux命令每日分享——groupadd建立组
  • 《第一行代码》 第十章:服务
  • 简单介绍编程进制
  • windows忘记开机密码怎么办
  • SpringCloud:Eureka
  • 如何获取或设置CANoe以太网网卡信息(SET篇)
  • 【软件测试面试题】项目经验?资深测试 (分析+回答) 我不信你还拿不到offer......
  • tensorflow lite简介-移动设备端机器学习
  • Node.js常用知识
  • 踩坑:maven打包失败的解决方式总结
  • 【C++】位图
  • 蓝桥杯-考勤刷卡
  • 如何利用站内推广和站外推广提高转化率?
  • Java多线程(三)——线程池及定时器
  • Linux命令行安装Oracle19c教程和踩坑经验
  • Linux常用命令等
  • CEC2014:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解CEC2014(提供MATLAB代码
  • MyBatis底层原理【源码运行时序图】
  • k8s 系列之 CoreDNS 解读
  • 从测试鸡蛋硬度到跳表的设计