Python第二话 初识复杂数据类型(list、dictionary、tuple)
上一篇我们简单认识了数据类型:数字number和字符串string,这篇我们就来隆重介绍一下重量级的数据类型:列表list、字典dictionary和元组tuple。
一、列表List:
①列表是什么?
比如我是小白,在定义变量的时候我们可以写 me = '小白'。妈妈是小白妈妈 mother = '小白妈妈' ,爸爸是小白爸爸 father = '小白爸爸'。针对一对一的关系,我们可以直接定义变量。但是如果我想表达家庭,定义一个变量叫family,family = 我+妈妈+爸爸 。那
我们应该怎么给它赋值呢?这里就要引出 [List] 这个概念。
List的表现形式: List = [] #列表用方括号标识
List = [a,b,c,d] # a、b、c、d叫list中的元素,不同元素之间用“,”逗号分隔
此时 family = ['小白','小白妈妈','小白爸爸']
list表现了一对多的关系,list的元素可以是数字number(1,2,3,4),字符串string('小白','小白妈妈','小白爸爸'),甚至可以是列表(嵌套)。比如说小白嫁给了小黑,有了自己的小家庭,那么此时family1 = ['小白','小黑','小白妈妈','小白爸爸'],为了体现出小
白和小黑是一家的,new_family = [['小白','小黑'],'小白妈妈','小白爸爸'] 。此时就在family这个list中,就嵌套了一个小的list元素。一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维列表。
②那么我们怎么在family中找到小白呢?
list的元素是有自己的编号的,学名“下标、索引、角标、编号”。最左边的第一个 元素的下标是0,最右边的最后一个元素下标是-1。从左向右数,是依次递增0,1,2...;从右向左数,是依次递减,-1,-2,-3...
从列表中找元素:list[下标],比如在family中,小白的下标是0或-3,所以family[0]或family[-3]得到的就是小白。如何输出整个family?很多人会认为family[0:2],但是实际操作会发现,此时只能输出“小白”“小白妈妈”,因为list的下标选取规则是“顾头不顾尾”,所以只有family[0:3]或者family[0:],才能输出全部元素。
那如何在new_family中找到小白呢?答案是new_family[0][0]。多层嵌套时谨记,不要急,一层一层去取就很轻松了。
③下面介绍一些列表的常用操作:
定义一个list:cities = ['广州','天津']
#增
cities.append('北京') #在列表末尾增加一个元素
print(cities)
>> cities = ['广州','天津','北京']
cities.insert(0,'上海') #在指定的位置增加元素
print(cities)
>> cities = ['上海','广州','天津','北京']
#删
cities.pop(0) #删除指定位置的元素
print(cities)
>> cities = ['广州','天津','北京']
cities.remove('北京') #删除指定的元素
print(cities)
>> cities = ['广州','天津']
del cities[-1] #删除指定位置的
print(cities)
>> cities = ['广州']
cities.clear() #清空list
print(cities)
>> cities = []
#改
cities[1]='南京' #需指定下标修改,如果指定的下标不存在,会报错

#查
print(cities[0]) #指定位置的查找
print(cities.index('广州')) #获取元素的下标,如果找不到那个元素的话,会报错

print(cities.count('广州')) #查看元素在list里面出现了多少次
④列表的常用方法:
#反转:
my_list = ['python','jmeter','charles','postman']
print(my_list.reverse()) #把my_list反转一下,不会返回任何内容,此时再次打印list,会发现顺序已修改
print(my_list)
>> ['postman', 'charles', 'jmeter', 'python']
#排序
nums = [9,2,34,12,34,457,2342]
nums.sort() #升序
print(nums)
>>[2, 9, 12, 34, 34, 457, 2342]
nums.sort(reverse=True) #降序
print(nums)
>>[2342, 457, 34, 34, 12, 9, 2]
#合并
print(cities+cities2) #合并list
#复制
print(cities*3) #复制几次
二、元组Tuple:
元组与list类似,不同之处在于元组的元素不能修改。
Tuple的表现形式:Tuple = () #元组用小括号‘’()‘’标识
Tuple = (1,) #如果元组中只有一个元素,需要在元素后加上 “,” 逗号
Tuple = (a,b,1,2) # 元素之间用逗号隔开,元组中的元素可以是数字number、字符串string或者是嵌套类型。
注:元组虽然不可修改,但是如果元素中包含可变的列表或者字典,是可以修改的。比如:
nums = (9, 2, 34, ['test'])
nums[3][0] ='a'
print(nums)
>>(9, 2, 34, ['a'])
①元组的常见方法:
print('words2',type(words2)) #查看类型
print(t.index(2)) #找到元素的下标
print(t.count(2)) #查找元素在元组中的个数
三、字典Dictionary:
① 什么是字典?
字典和列表一样,是一个可变的对象的集合。假设我们要录入一个人的信息,比如name:小白 , sex:女, hobby:男 等等,我们既需要录入结果,同时需要录入文字说明。list可以存储结果,但是无法带上说明文字,所以我们引入了一个新的数据类型--字典。
Dict的表现形式: Dict = {key : value} #字典用花括号”{}”标识,字典中的元素是key-value形式,类似于json。
Dict = {'name':'小白', 'sex':'女', 'hobby':'男'} #元素之间用逗号隔开,元素可以是数字number、字符串string或者是嵌套类型。
② 区别:
列表是有序的,字典是无序的;
字典当中的元素是通过键来存取的,而列表是通过下标;
字典中的key必须是唯一标识,就如同list的下标一样;
字典取值速度比列表快;
③字典的常用操作:
定义一个字典 infos= {}
#增
infos['name']='小白' #增加一个key-value
infos.setdefault('age','25') #增加一个key-value
infos.setdefault('name','小黑') #如果key存在的话,不会修改原来key里面的值
infos['name']='小黑' #如果key存在的话,会修改原来key对应的value;如果key不存在,会创建一个新的key-value
#删
infos.pop('name') #指定key来删除,会删除key及对应的value值
infos.popitem() #随机删除一个key及对应的value
del infos['phone'] #指定key来删除,如果key存在会删除key及value;如果key不存在,会报错
infos.clear() #清空字典
#改
infos['name']='小黄' #如果key存在的话,会修改原来key对应的value;如果key不存在,会创建一个新的key-value
#查
print(infos.get('phone')) #取不到这个key的话,会返回None
print(infos.get('phone',110)) #如果取不到这个key的话,默认就是110
print(infos['phone']) #如果key不存在会报错
④字典的常用方法:
print(infos.values()) #获取字典所有的value
print(infos.keys()) #获取字典所有的key
print(infos.items()) # 获取字典所有的key-value
温馨提示:
number、string是不可变,改变等于一个新的;tuple 是不可修改;list、dictionary是可变的
number、string是一对一的关系;list、dictionary、tuple是一对多的关系
以上为本篇全部内容,对于数据类型的使用方法,还是需要多摸索和练习。以下为福利:

Python第二话 初识复杂数据类型(list、dictionary、tuple)的更多相关文章
- Python第二章-变量和数据类型
变量和数据类型 一.什么是变量,常量 思考:程序执行指的是什么? 对数据进行存储处理和计算,最终获得结果,这是程序执行的本质. 变量的概念和在数学中的变量的概念一样的,只是在计算机程序中,变量不仅可以 ...
- Python. Day1. 之初识 变量数据类型
稍后添加 一 介绍 二 变量
- python第二章:数据类型--小白博客
标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) Python3 ...
- 孤荷凌寒自学python第二十七天python的datetime模块及初识datetime.date模块
孤荷凌寒自学python第二十七天python的datetime模块及初识datetime.date模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.datetime模块 dateti ...
- Python基础(一):初识基本数据类型
这个系列主要是对以往学过的Python3基础的总结和回顾. Python的基本数据类型包含数字.字符串.列表.元组.字典.集合几大类. 在介绍基本数据类型之前,先说明三个Python内建方法,有助于认 ...
- 孤荷凌寒自学python第二十五天初识python的time模块
孤荷凌寒自学python第二十五天python的time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 通过对time模块添加引用,就可以使用python的time模块来进行相关的时间操 ...
- Python 第二课笔记
1.模块初识 Python标准库和第三方库, 写好的功能封装好,起个名字,就是模块也叫库,直接导入就能用了. 标准库就是不需要安装,就能够导入的库 第三方库必须下载,安装才能使用的库. 1.1 两个标 ...
- Python系列:二、数据类型--技术流ken
标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) Python3 ...
- python基础之初识python
Python的发展史 1989年圣诞节期间,吉多·范罗苏姆为了打发时间,开发了python这门语言.真他妈牛逼. Python崇尚优美.清晰.简单,是一门优秀并广泛使用的语言.2007年在TIOBE榜 ...
随机推荐
- 通过grub-install命令把grub安装到u盘-总结
通过grub-install命令把grub安装到u盘 ①准备一个u盘,容量不限,能有1MB都足够了. ②把u盘格式化(我把u盘格式化成FAT.fat32格式了,最后证明也是成功的).③开启linux系 ...
- redis在windows下的安装
redis服务器端程序:https://github.com/dmajkic/redis/downloads 根据自己的操作系统,选择32位和64位的 解压后文件目录如下 redis-server.e ...
- g++基本用法
用法:g++[选项]文件... g++编译流程: main.cxx #include <iostream> using namespace std; int main(void) { co ...
- AHCI模式安装XP以及驱动下载
一.准备AHCI驱动 1.关于AHCI基础知识,请参考<AHCI模式的驱动下载.安装及蓝屏问题综合>一文. 2.安装AHCI驱动之前,请先确认桌面上.系统盘没有重要的东西需要备份,因为如果 ...
- java.lang.Exception: Socket bind failed
1.错误描述 严重: Failed to initialize end point associated with ProtocolHandler ["http-apr-8080" ...
- css设置居中的方案总结
回想一下,自己平时项目里遇到的比较多的就是css如何让元素居中显示,其实差不多每种情况都遇到过,所采用的方法也都各有利弊,下面对这些方法来做个概括,对其中的坑点,也会一一指出来,希望能给遇到问题的同学 ...
- [NOIP2017] 逛公园
[NOIP2017] 逛公园 题目大意: 给定一张图,询问长度 不超过1到n的最短路长度加k 的1到n的路径 有多少条. 数据范围: 点数\(n \le 10^5\) ,边数\(m \le 2*10^ ...
- 【BZOJ1483】【HNOI2009】梦幻布丁(启发式合并,平衡树)
[BZOJ1483][HNOI2009]梦幻布丁 题面 题目描述 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1 ...
- 杜教筛:Bzoj3944: sum
题意 求\(\sum_{i=1}^{n}\varphi(i)和\sum_{i=1}^{n}\mu(i)\) \(n <= 2^{31}-1\) 不会做啊... 只会线性筛,显然不能线性筛 这个时 ...
- [BZOJ2743] [HEOI2012] 采花 (树状数组)
Description 萧芸斓是Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一 ...