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 += 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)

输出结果

['梨子', '苹果', '香蕉', '梨子', '苹果', '香蕉']

列表的内容先讲到这里,下篇文章,我们一起了解

列表的遍历

列表的索引和切片
列表的运用实例
如果对你有帮助,不要帮助点赞、评论、关注加收藏哦!

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python和数据分析

钟意作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值