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开始的,我们可以通过索引来访问列表的值. 列表的 ...
随机推荐
- Apache commons(Java常用工具包)简介
Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.html Be ...
- (一)从设计的角度来看ADT(Java)
<数据结构与抽象——Java语言描述>第一章学习笔记 感想:以前学数据结构关注于方法及实现,为了完成作业和手写代码,没有从设计层面考虑过,第一章设计一个bag ADT,借助于Java in ...
- 前端VUE框架
一.什么是VUE? 它是一个构建用户界面的JAVASCRIPt框架 vue不关心你页面上的是什么标签,它操作的是变量或属性 为什么要使用VUE? 在前后端分离的时候,后端只返回json数据,再没有 ...
- leetcode-algorithms-26 Remove Duplicates from Sorted Array
leetcode-algorithms-26 Remove Duplicates from Sorted Array Given a sorted array nums, remove the dup ...
- poj-2689-素数区间筛
Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22420 Accepted: 5954 Descr ...
- vijos 清点人数
背景 NK中学组织同学们去五云山寨参加社会实践活动,按惯例要乘坐火车去.由于NK中学的学生很多,在火车开之前必须清点好人数. 描述 初始时,火车上没有学生:当同学们开始上火车时,年级主任从第一节车厢出 ...
- Windows Server 2003添加防火墙策略教程
1.开始--控制面板--Windows防火墙 2.启用 选择启用即启动防火墙 3.添加例外 常常启用防火墙,还是希望某端口能被某些IP所访问,而防火墙默认是禁止所有IP访问本机的所有端口的,此时我们就 ...
- 【转】关于TCP 半连接队列和全连接队列
摘要: # 关于TCP 半连接队列和全连接队列 > 最近碰到一个client端连接异常问题,然后定位分析并查阅各种资料文章,对TCP连接队列有个深入的理解 > > 查资料过程中发现没 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十一):集成 Shiro 框架
Apache Shiro 优势特点 它是一个功能强大.灵活的,优秀开源的安全框架. 它可以处理身份验证.授权.企业会话管理和加密. 它易于使用和理解,相比Spring Security入门门槛低. 主 ...
- sigmoid belief network boltszmann machine
because of explaining away, the hidden weights in sigmoid belief network is no longer independent