5分钟带你了解Python中的容器型数据类型--列表1
Python中的容器型数据类型–列表1
1.为什么要有列表
介绍列表之前,首先请大家用前面学习的循环和分支实现一个很简单的程序
(还没理解分支和循环的童鞋,赶紧打开《3分钟带你了解Python中分支与循环1》和《3分钟带你了解python中分支与循环2》补补课,编程一定要多加练习,我也总结了《python中分支与循环的必刷经典例题(附参考答案)》,下面来做一下这个练习
掷一颗骰子6000次,记录它每一面出现的次数,并且打印出来
import random # 导入random模块
a = b = c = d = e = f = 0
for _ in range(6000):ran = random.randrange(1, 7) # 接收随机数,模拟骰子if ran == 1:a += 1elif ran == 2:b += 1elif ran == 3:c += 1elif ran == 4:d += 1elif ran == :e += 1else:f += 1
print(a, b, c, d, e,f) # 打印出每1面出现的次数
童鞋们写出来了吗,不知道你们的代码有没有我的恶心,反正是把我恶心到了
接下来,我们将它升级一下
掷两颗骰子6000次,记录它们出现的数之和的次数,并且打印出来
import random
a, b, c, d, e, f ,g ,h, i ,j, k= 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
for _ in range(6000):ran2 = random.randrange(1, 7)ran1 = random.randrange(1, 7)ran = ran1 + ran2if ran == 2:a += 1elif ran == 3:b += 1elif ran == 4:c += 1elif ran == 5:d += 1elif ran == 6:e += 1elif ran == 7:f += 1elif ran == 8:g += 1elif ran == 9:h += 1elif ran == 10:i += 1elif ran == 11:j += 1else:k += 1
print(a, b, c, d, e, f ,g ,h, i ,j, k)
显然,这是一个体力活儿啊,假如是三个、四个、五个骰子、、、,那不得从早上上班开始敲到下午下班啊,所以,显然这个时候用我们之前在《Python中的变量》中讲过的几种数据变量就不再能够满足需求了,因为之前讲的几种数据类型的变量都是一个变量开辟一个内存空间,而一个变量却只能够存储一个数据,那么,python中有没有像C语言或者java里面那样如数组类型的数据类型的变量呢,答案是肯定的。而且不止一种,这样的数据类型的变量就像一个容器一样,一个容器就可以装很多东西,所以,它们也叫容器型变量,分别有列表(list)、元组(tuple)、字典(dictionary)、集合(set)几种。这里重点介绍列表。
2.列表的定义
正如以上所讲,当只能放一个数据的变量不再能满足需求,那么就出现了能够存放多个数据的数据类型的变量,于是,列表的命名规则相同,而不同的是,如果将它命名为一个单词时,这个单词通常用复数形式,而在取一个列表中的单个元素时,通常将这个元素用单词单数表示,例如
nums = ['香蕉','苹果','梨子']
for num in nums:print(num)
以上代码中nums是一个列表,这个列表里有’香蕉’、‘苹果’、'梨子’三个元素,采用for循环,将里面的元素依次打印出来,这列表的遍历,这个后面一点会讲,这里说的是,for num in nums:中的列表就是用单词的复数形式在命名的,而里面的元素就用num单词的单数为它们“代言”。
列表的定义
- 定义一个列表
列表用一个方括号将元素包起来,然后元素之间用逗号分隔
定义一个空列表形如:nums = []
想看看这里的nums的数据类型是不是列表类型,同样,采用python内置的type()函数
nums = []
print(type(nums))
输出结果为:
<class 'list'>
定义一个有元素的列表形如: nums = [‘香蕉’, ‘苹果’, ‘梨子’]
nums = ['香蕉', '苹果', '梨子']
print(type(nums))
输出结果:
<class 'list'>
列表的定义是很简单的,主要看看列表的有哪些功能(我们能对列表所做的操作)
3.列表的常用方法(操作)
知道列表的定义后,下面更重要的是我们到底能用它来做哪些事情,也就是能对列表做哪些操作,接下来,它有许多操作,定义一个列表后,采用 "列表名 . " ,就可以将列表的方法显现出来,如下图。
可用的方法还不止这些,所以,我们只介绍几种常用的。
列表中的几个常用方法
- .pop() 删除列表中最后一个元素,也可以按照下标去删除对应元素
- .append(元素) 从后面添加元素
- .remove(元素)按值删除对应元素
- .sort() 排序()默认是升序,想要降序可加参数reverse = True
- .insert(位置,元素)添加元素到对应位置,该位置和后面的元素向后移动
- .clear()清空列表里面的元素
- .index(元素) 查找元素的位置并返回(找到一个不再找后面的),.index(元素,start,end)从指定位置中找到元素的位置并返回(找到一个不再找后面的)
- .count(元素) 计元素出现的次数,.count(元素,start,end)指定开始位置和结束位置记录该元素出现的次数
- .reverse() 对列表进行反转
首先,在使用方法之前,我们需要知道
在列表里面,每一个元素都有一个“位置”,而这个位置,是按照0 ,1, 2, 3 ,4 ····来排的,它叫作这个元素的下标
例如:
nums = [‘香蕉’, ‘苹果’, ‘梨子’, ‘香蕉’, ‘苹果’, ‘梨子’],里面元素的位置是这样的
而如果想取出某个元素,可以这样做
nums = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
print(nums[0]) # 取出第一个元素
print(nums[1]) # 取出第二个元素
print(nums[5]) # 取出第六个元素
这叫列表的索引
在下一篇文章《Python中的容器性数据类型1–列表2》我们会仔细讲到,知道这些就够我们学习列表的常用方法了。
1 .pop() 删除列表中最后一个元素,也可以按照下标
去删除对应元素
如
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
fruits.pop()
print(fruits)
输出
['香蕉', '苹果', '梨子', '香蕉', '苹果']
还可以按照下标
去删除对应元素
如
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
fruits.pop(2) # 删除下标为2的元素,也就是第三个元素‘梨子’
print(fruits)
输出结果
['香蕉', '苹果', '香蕉', '苹果', '梨子']
2 .append(元素) 从后面添加元素
如
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
fruits.append('火龙果')
print(fruits)
输出结果为
['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子','火龙果']
3 .remove(元素)按值删除对应元素
如
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
fruits.remove('苹果')
print(fruits)
输出结果
['香蕉', '梨子', '香蕉', '苹果', '梨子'] # 下标为1的苹果已经被删除
注意,找到后就删除,并且不再往后面的继续找,如果想将符合的都删除的话用一个循环
例:
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
# 列表的遍历,后面一点讲到
for i in fruits: if i == '苹果':fruits.remove('苹果')
print(fruits)
输出结果为
['香蕉', '梨子', '香蕉', '梨子']
4 .sort() 排序(),给列表中的元素排序,默认是升序,想要降序可加参数reverse = True
如
nums = [1, 5, 2, 7, 9, 3, 4]
print(nums)
print("- " * 20)
nums.sort()
print(nums)
输出结果
[1, 5, 2, 7, 9, 3, 4] # 排序前的列表
- - - - - - - - - - - - - - - - - - - -
[1, 2, 3, 4, 5, 7, 9] # 排序后的列表
如果要降序排序
nums = [1, 5, 2, 7, 9, 3, 4]
print(nums)
print("- " * 20)
nums.sort(reverse = True) # 加上一个参数reverse = True即可
print(nums)
输出结果
[1, 5, 2, 7, 9, 3, 4] # 排序前的列表
- - - - - - - - - - - - - - - - - - - -
[9, 7, 5, 4, 3, 2, 1] # 排序后的列表
5 .insert(位置,元素)添加元素到对应位置,该位置和后面的元素向后移动
如
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
fruits.insert(2, '火龙果') # 在下标为2的位置插入'火龙果'这个元素
print(fruits)
输出
['香蕉', '苹果', '火龙果', '梨子', '香蕉', '苹果', '梨子']
6 .clear()清空列表里面的元素
这个就不举例了,太简单,小伙伴自己试一下
7 .index(元素) 查找元素的位置并返回(找到一个不再找后面的),.index(元素,start,end)从指定位置中找到元素的位置并返回(找到一个不再找后面的)
如
# 在fruits列表中查找'苹果'的位置
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
print(fruits.index('苹果'))
返回结果
1
在指定位置范围内找
如
# 在fruits列表中下标2到5之间查找'苹果'的位置
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
print(fruits.index('苹果', 2, 5))
输出结果
4
8 .count(元素) 计元素出现的次数,.count(元素,start,end)指定开始位置和结束位置记录该元素出现的次数
如
# 在fruits列表统计'苹果'出现的次数
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
print(fruits.count('苹果'))
输出结果
2
在指定位置范围内统计
如
# 在fruits列表下标2到5之间统计'苹果'出现的次数
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
print(fruits.count('苹果', 2, 5))
输出结果
1
9 .reverse() 对列表进行反转
如
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
fruits.reverse()
print(fruits)
输出结果
['梨子', '苹果', '香蕉', '梨子', '苹果', '香蕉']
列表的内容先讲到这里,下篇文章,我们一起了解
列表的遍历
列表的索引和切片
如果对你有帮助,不要帮助点赞、评论、关注加收藏哦!
uits = [‘香蕉’, ‘苹果’, ‘梨子’, ‘香蕉’, ‘苹果’, ‘梨子’]
print(fruits.count(‘苹果’, 2, 5))
输出结果```python
1
9**.reverse() 对列表进行反转**
如
fruits = ['香蕉', '苹果', '梨子', '香蕉', '苹果', '梨子']
fruits.reverse()
print(fruits)
输出结果
['梨子', '苹果', '香蕉', '梨子', '苹果', '香蕉']
列表的内容先讲到这里,下篇文章,我们一起了解
列表的遍历
列表的索引和切片
列表的运用实例
如果对你有帮助,不要帮助点赞、评论、关注加收藏哦!
5分钟带你了解Python中的容器型数据类型--列表1相关推荐
- 5分钟带你了解python中超级好用的库 you-get
一. you-get概述 you-get是一个小型的命令行实用程序,用于从Web下载媒体内容(视频,音频,图像). 官方网址:https://you-get.org/ 源码地址:https://git ...
- 太好了,一分钟带你分清Python的模块、库、包有什么联系和区别?
Python的流行主要依赖于其有众多功能强大的库(Library),Python自带的标准库(Standard Library)可以满足大多数的基础需求,除了函数库以外,模块(Module)和包(Pa ...
- 10分钟带你探索css中更为奇妙的奥秘
10分钟带你探索css中更为奇妙的奥秘
- 【教程搬运】读懂github上的工程代码——带你熟悉Python中的Parser
读懂github上的工程代码--带你熟悉Python中的Parser 1.导入包 2.实例化ArgumentParser 3.使用add_argument函数添加参数 4.使用parse_args解析 ...
- lambda在python_在Python中使用lambda高效操作列表的教程
介绍 lambda Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字,不然会报错 result = lambda x: x * x result(2) # ...
- python中怎么比较两个列表-python中如何比较两个列表不同
通过不断的测试发现,python实现高效快速比对两个列表的不同,可借助python集合set()提供的集合运算进行操作,此方式效率非常高. 而在java语言中,如下方法中方法1相比方法2(集合运算)的 ...
- python中怎么比较两个列表-python中如何比较两个列表
cmp() 方法用于比较两个列表的元素. cmp()方法语法:cmp(list1, list2) 参数: list1 -- 比较的列表.list2 -- 比较的列表. 返回值: 如果比较的元素是同类型 ...
- python中的序列总结:列表,元组,字符串
首先python中的序列有列表,元组,字符串. 列表List是python里面最基本的数据结构.序列中每个元素都是从索引(下标)从0开始,依次叠加. List操作的方法很多,只能熟悉基本常用的这个方法 ...
- python中object是什么数据类型_自学Python2.1-基本数据类型-字符串str(object) 上
自学Python2.1-基本数据类型-字符串str(object) 上 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配 ...
- 【Python】Python实战从入门到精通之一 -- 教你深入理解Python中的变量和数据类型
本文是Python实战–从入门到精通系列的第一篇文章: Python实战从入门到精通之一 – 教你深入理解Python中的变量和数据类型 文章目录 1.变量 1.1 变量命名规则 1.2 变量名称错误 ...
最新文章
- 排序算法系列:Shell 排序算法
- MVP open day 2009 (二)
- VTK:可视化之Visualize2DPoints
- JavaScript 世界万物诞生记
- web前端分享JavaScript到底是什么?特点有哪些?
- Extjs formpanel加载数据的两种方式
- Redis五大数据类型
- jquery获取和设置属性_jQuery获取属性,设置属性,删除属性
- CSS:使用CSS绘制三角形
- Gradle 4.8.1基本配置
- 全国青少年编程等级考试scratch三级真题2021年12月(含题库答题软件账号)
- Windows系统监控
- 协议栈数据包快速转发的实现(2)
- HP Gen8 MicroServer win7 系统安装手册(usb)
- Symbian术语表
- 英语考研——因果状语从句
- Win10 Synaptics触摸板无法实现双指单击模拟鼠标右键点击的解决办法
- java中library找不到了,java web 找不到java.library.path途径
- 深度linux时间.年日调整,deepin深度商店中的Linux版应用体验分享(一)
- quartus 13.0 之四位全加器(不需要用modelism的歪门邪道)
热门文章
- DTAS尺寸公差分析软件-三维尺寸公差分析软件尺寸链计算软件
- SimpleMind Pro 1.29.1 小巧的思维导图工具
- mysql从删库到跑路 Ubuntu篇
- 趣图:gif PostgreSQL MySQL 从删库到跑路
- vuejs出的手机app有哪些_vue.js点餐app手机触屏滑动分类菜单切换代码
- ABAP BDC使用EXCEL模板批量修改物料
- java登录界面圆形头像_Bootstrap实现圆角、圆形头像和响应式图片
- c语言.jpg图片转成数组_图片可以转Word吗?教你两种方法轻松转换
- 2016阿里在线笔试Java研发附加题
- TR CEV65M-01460一个人,也有春夏秋冬