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 += 1
elif ran == 2:
b += 1
elif ran == 3:
c += 1
elif ran == 4:
d += 1
elif ran == :
e += 1
else:
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 + ran2
if ran == 2:
a += 1
elif ran == 3:
b += 1
elif ran == 4:
c += 1
elif ran == 5:
d += 1
elif ran == 6:
e += 1
elif ran == 7:
f += 1
elif ran == 8:
g += 1
elif ran == 9:
h += 1
elif ran == 10:
i += 1
elif ran == 11:
j += 1
else:
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)
输出结果
['梨子', '苹果', '香蕉', '梨子', '苹果', '香蕉']
列表的内容先讲到这里,下篇文章,我们一起了解
列表的遍历
列表的索引和切片
列表的运用实例
如果对你有帮助,不要帮助点赞、评论、关注加收藏哦!