Python中列表、元组、集合、字典
Python 列表(List)
列表是最常用的Python数据类型;
列表中的数据项不需要具有相同的类型;
列表也叫做数组,定义时使用[];
通过下标访问列表中的元素,下标从 0 开始计数
列表的增、删、改、查
增:
fruit = ['apple','orange','banana']
s = 'grape'
fruit.append(s) # 从末尾插入
print(fruit) # ['apple', 'orange', 'banana', 'grape']
删:
fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
fruit.remove('banana') # 删除指定元素
print(fruit) # ['apple', 'orange', 'plum', 'fig', 'cherry', 'watermelon'] del fruit[1] # 删除指定位置的值
print(fruit) # ['apple', 'plum', 'fig', 'cherry', 'watermelon'] fruit.pop() # 不传入下标,是删除最后一个值;传入下标,删除的是指定位置的值
print(fruit) # ['apple', 'plum', 'fig', 'cherry'] fruit.clear() # 清空列表
print(fruit) # []
改:
fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
fruit[2] = 'strawberry' # 修改指定位置的值
print(fruit) # ['apple', 'orange', 'strawberry', 'plum', 'fig', 'cherry', 'watermelon']
查:
fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
print(fruit[0]) # 获取第0个元素 apple
print(fruit[-1]) # -1 代表最后一个元素 watermelon
切片:
fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
print(fruit[1:3]) # 取下标1到下标 3 之间的值 ,顾头不顾尾 ['orange', 'banana']
print(fruit[1:-1]) # 取下标1到-1 之间的值 顾头不顾尾 ['orange', 'banana', 'plum', 'fig', 'cherry']
print(fruit[3:]) # 取从第二个下标开始的后面所有元素 ['plum', 'fig', 'cherry', 'watermelon']
print(fruit[::2]) #这个代表取所有的元素,然后每隔2个元素取一个 ['apple', 'banana', 'fig', 'watermelon']
Python 元组
元组和列表一样,唯一不一样的是,元组的值不能改变;元组的定义用小括号 ()
Python 集合
set是一个无序不重复元素集,集合的最好应用是去重。
a = [1,1,2,2,3,3]
a_set = set(a)
print(a_set) # {1, 2, 3}
字典:
字典的定义用大括号{ },每个值用 ”,“ 逗号隔开,key和value使用 ”:“ 冒号分隔
字典的特性:
字典是无序的,因为它没有下标,用key来当索引,所以是无序的
字典的key'必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
info = {
'name':'xiaoming',
'sex':'nan',
'age':20,
'id':1
}
print(info['name'])#通过key取值
print(info.get('addr')) # 通过get取值,取不到key时不会报错,会返回 None
# print(info['addr'])#通过key取值 []中取值找不到key的时候会报错KeyError: 'addr'
print(info.get('id'))#通过key取值
print(info.get('addr','beijing'))#通过key取值
增:
# 给字典新增一个值 === 列表中不可以这样写
info['addr'] = 'beijing'
print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20, 'id': 1, 'addr': 'beijing'} # 给字典新增一个值
info.setdefault('phone',13511111111)
print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20, 'id': 1, 'phone': 13511111111}
删:del、pop()、popitem()、clear()
del info['id']
print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20} info.pop('name')
print(info) #{'sex': 'nan', 'age': 20, 'id': 1} info.popitem() # # 随机删除一个元素 info.clear() # 清空字典
查:
# 字典的查询
infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}
print(infos.get('maryy'))#获取marry的信息,这种方式如果key不存在的话,会返回None。 None
print(infos['marry'])#获取marry的信息,这种方式如果key不存在的话,会报错。 [18, 18612512981, '北京']
print('marry' in infos) #判断marry是否在这个字典中,返回True或者False。 True
all = {
'car':{
'color':['red','yellow','black'],
'money':11111,
'pailaing':'2.5L',
'name':'A'
},
'car1':{
'color':['red','yellow','black'],
'money':11111,
'pailaing':'2.5L',
'country':'china'
},
'car2':{
'color':['red','yellow','black'],
'money':11111,
'pailaing':'2.5L'
}
}
在car1中添加颜色:orange
# car1中加一个颜色
all.get('car1').get('color').append('orange')
print(all) all.get('car').get('color')[1] = 'orange' # 将car中的yellow改成orange
# 返回字典里所有的key
print(all.keys())# 返回字典里的所有的key
print(all.values())# 获取字典里的所有的value
print(all.items())# 获取字典的key和value,循环的时候用
字典的合并:
info = {
'name':'xiaoming',
'sex':'nan',
'age':20,
'id':1
}
info2 = {
'name':'hhh',
'sex':'nan'
}
# 把两个字典合并到一起,如果有一样的key,那么更新value
info.update(info2)
print(info) # {'name': 'hhh', 'sex': 'nan', 'age': 20, 'id': 1}
字典的循环:
# 直接循环字典,循环的是字典的key,如果想循环的时候同时获取到key和value, 那么就要用 .items()方法
print(info.items()) # dict_items([('name', 'xiaoming'), ('sex', 'nan'), ('age', 20), ('id', 1)]) # 第一种方法
# items 方法的作用就是为了让你循环的时候同时把key和value取到
for k,v in info.items():
print('%s is %s'%(k,v)) # 第二种方法
for k in info2:#这种方式效率比较高
print(k,info2[k])
字典中判断key是否存在
Python3中直接用 in 来判断 key 是否存在
print('name' in info2) # True
字典的内置方法:
# 字典的内置方法
print(info.values())#打印所有value。 dict_values(['xiaoming', 'nan', 20, 1])
print(info.keys())#打印所有的key。 dict_keys(['name', 'sex', 'age', 'id'])
print(info.setdefault('stu1','盛夏'))#如果这个key存在的话,那就不动它,不存在的话,添加一个。 盛夏
dic2 = {'stu1':'sriba','stu10':'baidu'}
info.update(dic2)#更新字典值,如果key存在的话,就更新,不存在的话就添加
print(info.items())#字典转换成一个list 。 dict_items([('name', 'xiaoming'), ('sex', 'nan'), ('age', 20), ('id', 1), ('stu1', 'sriba'), ('stu10', 'baidu')])
Python中列表、元组、集合、字典的更多相关文章
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
- **python中列表 元组 字典 集合
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...
- python 中列表 元组 字典 集合的区别
先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...
- Python中列表(list)、字典(dict)排序的程序
Python3 中的排序,在 Sorting HOW TO 中已经讲得很清楚了.来个实际的例子,对下面的这个 list 依据创建时间排序: pages = [{'title': '十年学会程序设计', ...
- python中列表 元组 字符串如何互相转换
python中有三个内建函数:列表,元组和字符串,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示: >>> s = "xxxxx ...
- Python中列表生成式和字典生成式练习
(一)列表生成式 练习一:编写名为collatz(number)的函数:实现的功能:参数为偶数时,打印number// 2;参数为奇数时,打印3*number + 1 解析: number = int ...
- python中列表元组字符串相互转换
python中有三个内建函数:列表,元组和字符串,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示: >>> s = "xxxxx ...
- python中列表排序,字典排序,列表中的字典排序
#-*- encoding=utf-8 -*- # python3代码 import operator 一. 按字典值排序(默认为升序) x = {1:2, 3:4, 4:3, 2:1, 0:0} 1 ...
- Python中列表,元组,字典,集合的区别
参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...
- Python—列表元组和字典
Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...
随机推荐
- 统计数组中各个元素出现的次数,元素取值范围为:1到N
问题描述: * 给定一个整数数组a,长度为N,元素取值范围为[1,N]. * 统计各个元素出现的次数,要求时间复杂度为O(N),空间复杂度为O(1). * 可以改变原来数组结构. 思路: * 从第 ...
- 『Github』本地项目更新到服务器
对于已经新建到服务器的项目,我们在本地有了新的修改之后,想要同步到服务器时的操作. 1.clone代码 1.把目标工程clone到本地,使用指令: >git clone https://gith ...
- 『PyTorch』第二弹_张量
参考:http://www.jianshu.com/p/5ae644748f21# 几个数学概念: 标量(Scalar)是只有大小,没有方向的量,如1,2,3等 向量(Vector)是有大小和方向的量 ...
- [luogu P3384] [模板]树链剖分
[luogu P3384] [模板]树链剖分 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点 ...
- Hadoop---集群的搭建(仅主机模式)
Hadoop---集群的搭建 我有一个虚拟机是用来克隆的,里面设置了java环境,开启不启动防火墙的配置. 准备: 1.我的3个虚拟机: hu_hadoop1(主+从):nameNode+dataNo ...
- 基于spring的PropertySource类实现配置的动态替换
public class ConfigPropertySource extends PropertySource<Properties> implements PriorityOrdere ...
- AMR文件结构
转自:http://blog.csdn.net/dinggo/article/details/1966444 https://blog.csdn.net/wlsfling/article/detail ...
- C# 中web如何定时同步数据
之前做定时器同步方法试过很多方法, 不过都有些问题 1)quartz + IIS 方式(web项目发布到IIS上,出现IIS应用池回收问题) 2)用线程Timer方式 (出现多个线程同步同个任务问题) ...
- LaTeX技巧10:LaTeX数学公式输入初级入门
LaTeX最强大的功能就是显示美丽的数学公式,下面我们来看这些公式是怎么实现的. 1.数学公式的前后要加上 $ 或 \( 和 \),比如:$f(x) = 3x + 7$ 和 \(f(x) = 3x + ...
- Win10系列:JavaScript 的 WinJS库
WinJS 库是由 CSS 和 JavaScript 文件组成的.使用Visual Studio 2012新建一个JavaScript 的Windows应用商店的空白应用程序项目,在项目的引用管理器中 ...