python怎么把遍历出来的数放进列表里_12.哆啦a梦的四次元口袋,趣说Python的列表类...

d1f20f395285e5141016c023222187f8.png

转自同名微信公众号

在前面的内容里,我们接触到的要么是单个的数字,要么是range()函数返回的等差数列。

但现实生活中,我们碰到的往往是大量无规律的数字。比如一年内每天的气温,比如某次数学考试的成绩。

d5246635307b683b70fa2863a1a578a9.png

在Python里,怎么保存这样大量无规律的数据呢?


容器类型三兄弟:列表、元组、字典

在《机器猫》里,哆啦a梦有一个魔法口袋,可以从里面掏出各种神奇的宝贝。

9c7ace454e8ad326db3b44ff6761dcad.png

四次元口袋。又名四次元百宝袋、四维口袋,正式名称是“机械人专用四次元空间内藏秘密道具格纳口袋”

在python里,也有类似的魔法口袋。我们习惯上称为容器类型。

三种最基础的容器类型分别是

列表类

list1 = [99,100,98.5,100,97,98]

元组类

tup1 = (99,100,98.5,100,97,98)

字典类

dict1 = {1:99,2:100,3:98.5,4:100,5:97,6:98}

上面的程序,就是分别把1-6号同学的成绩“装进”了列表类,元组类和字典类的实例里。

而这三种基本容器类型中,列表类又是最基本,也是应用最广泛的。所以,我们先来介绍列表类。


实例:“我想有个家,一个不需要多大的地方”

在介绍列表之前,我们需要先理解:每个实例都有一个家

实例的概念可以复习《02 只要5分钟,一文理解Python基本概念》。

726bb2f36df748dff865d04433c4a532.png

《我想有个家》是潘美辰的代表作品之一。1990年这首歌曲获得了第一届台湾金曲奖年度最佳歌曲奖。

如 a = 6,6是数字类的一个实例。

Python提供了一个内置函数 id( ),可以返回实例的家的地址。

1349dd07adb8eaa70ca8896ae03dc18e.png

我们看到,94789371651008就是整型实例 6 的地址。

用一个简陋的火柴盒来表示6的家。

家的地址是94789371651008

6就住在家里

而铅笔就是变量a,它指向了 这个地址。

54831d90323c9405f9d468c466546679.png

列表

那列表是什么呢?

列表就是编好了号的一些房子。

27049af5fd6bf3fe0dc0379d259cdce1.png

需要特别注意的几点:

  • “房子”的编号(称为下标索引),并不是“房子”在电脑里的地址!
    就像某土豪在全国各地都有房子。土豪给这些房子编了号。
    0号房子,1号房子,……
  • 编号是从0开始的
  • 入住“房子”的实例(称为元素)可以是不同类型的
list3 = ['hello',89,90,[1,2,3],90.234]

list3里,就有整型,浮点型,字符串型的实例,甚至还有另一个列表实例[1,2,3]。只要用逗号分隔开就行。

我们可以一开始就安排几个实例入住

list1 = [99,100,98.5,100,97,98]

也可以先没有实例,之后安排实例入住。

list2 = []
list2[0] = 1
list2[1] = 2

当然,也可以把原来入住的实例赶出去,换成新的实例。

list1 = [99,100,98.5,100,97,98]
list1[0] = 89

访问列表中的值

学习列表时,因为列表里的元素是自己放进去的。

所以,总有一种错觉,自己知道列表里有什么。

其实,你应该忘记列表里有什么,装作什么都不知道。

f0a5312399c18bc11c94e075425a6a7c.png

于是我们用 random模块的sample()函数构造了一个随机数列的列表。

import random
list1 = random.sample(range(70,100),10)

random.sample(range(70,100),10)

就是从[70,100)里面随机挑了10个数字。

这下,你不知道列表里有什么了吧!

那么,怎么才能知道列表里有什么呢?

有如下的办法。

  • 通过下标索引
list1[0]
list1[1]
  • 通过下标索引切片
list1[2:5]
list1[:5]
list1[3:]
list1[2:5]
list1[-5:-1]
  • 通过循环迭代
for x in list1:
    print(x)

不过通常我们更习惯采用循环下标索引的方式来遍历列表里每个元素

Python提供了一个内置函数 len(),可以返回列表里元素的个数。

n = len(list1)
for i in range(n):
    print(list1[i])

问题:列表的查找

import random
list1 = random.sample(range(1,100),80)

如上列表实例 list1 包含 [1,100) 里随机的80个数。

查找数字88是否包含在list1里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值