python 列表 元组 字典 集合
列表
lst = [i for i in range(10)]
切片
# 把下标小于2的显示出来
print(lst[:2])
# 把10个数有大到小输出
print(lst[::-1])
# 把下标为奇数的数字显示出来
print(lst[::2])
显示结果
[0, 1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
[0, 2, 4, 6, 8]
当切片时,会生成新的内存来存储切之后的列表。
l1 = lst
l2 = lst[::]
print(id(lst)) #
print(id(l1)) #
print(id(l2)) #
列表生成器 —— 一个使你代码牛逼的利器
# 显示能被2整除的数字
l3 = [i for i in lst if i % 2 == 0] # 注意第一个i、第二个i和第3个i要相对应
嵌套列表
# 嵌套列表
lst = [1, [2, 3]]
for i in lst:
print(i)
# 显示结果
#
# [2, 3]
for i in range(1, 4):
for j in range(5, 7):
print(i + j, end=" ")
print()
显示结果
6 7
7 8
8 9
append追加
a = [2, 3, 5]
a.append(100)
print(a)
[2, 3, 5, 100]
a.pop()
print(a)
[2, 3, 5]
b = [2, 4]
a.extend(b)
print(a)
[2, 3, 5, 2, 4]
浅拷贝
列表在存储嵌套列表时,l1 = [1, [2, 5, 6], 9]
[2, 5, 6]在l1的存储形式为[2, 5, 6]的指针
在浅拷贝时,拷贝的只是列表的连接
拷贝之后会形成新的地址
lst2 = lst.copy()
print(id(lst))
print(id(lst2))
#
#
lst2[0] = 10
print(lst)
print(lst2)
[1, [2, 5, 6], 9]
[10, [2, 5, 6], 9]
可以看到,lst2的第一个元素变成了10,而lst却没有改变
lst2[1][0] = 100 print(lst)
print(lst2)
[1, [100, 5, 6], 9]
[10, [100, 5, 6], 9]
而此时lst2的第二个元素的第一个元素会变,但lst的元素也变了。
元组
tuple, 我个人认为元组就是一个简化了的列表,也许tuple有自己的功能,但我还是觉得,元组是为了节省空间而存在的。
创建一个空元组
t1 = ()
print(type(t1))

成员检测
t2 = (1, 2, 3)
print(1 in t2)
print(4 in t2)
但我为啥会说是简化的列表呢?
tuple与list的不同
list可以增删改
而tuple不可以,tuple
t2 = (1, 2, 3)
t2.pop()
print(t2)
当我把最后一个元素删除时,你会发现Python的解释器会报错,说明了元组不能自身实现增删改的操作。
字典
字典的创建和集合差不多,都用大括号,但字典使用的是键值对
创建一个字典:
d1 = {'one': 1, 'two': 2}
print(d1)
显示结果为:{'two': 2, 'one': 1}
成员检测:
检测的是key键
print('one' in d1)
print(1 in d1)
显示结果:
True
False
在存储是,字典会按照key进行哈希存储,所以只能检测key是否存在
字典的循环
for i in d1:
print(i)
# two
# one for k in d1.keys():
print(k)
# one
# two for v in d1.values():
print(v)
#
# for k, v in d1.items():
print(k , '-----' , v)
# one ----- 1
# two ----- 2
我们在取字典值的时候,可以使用get。
print(d1.get('one'))
print(d1.get('three'))
显示结果
1
None
没有此键时,显示结果为None,而不会报错,而用d1['three']时,会报错。
集合
创建一个集合
s1 = {2, 3, 2, 4, 3, 2, 8}
print(s1)
结果为:{8, 2, 3, 4}
说明了集合的一个作用是:去重,一个集合看起来基本上是无序的。
集合增加元素:
s1.add(1)
print(s1)
集合删除元素:
如果能记住,建议用discard。当集合中没有此元素时,不会报错。
s1.discard(1) # 把集合中的1删除
print(s1)
s1.discard(1) # 集合中已经没有1 但没有报错
print(s1)
也可以使用remove,但没有此元素时,会报错
集合适用于减法:
s3 = {2, 3, 4}
s4 = {4, 5}
print(s3 - s4)
显示结果为:{2, 3}
会把s3集合中的与s4相同的元素删除
python 列表 元组 字典 集合的更多相关文章
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- Python 列表&元组&字典&集合
列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片.合并.删除等操作 可通过索引来向指定位置插入元素 可通过po ...
- Python列表,元组,字典,集合详细操作
菜鸟学Python第五天 数据类型常用操作及内置方法 列表(list) ======================================基本使用====================== ...
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
- **python中列表 元组 字典 集合
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...
- python_列表——元组——字典——集合
列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...
- python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)
列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...
- python 中列表 元组 字典 集合的区别
先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...
- Python列表,元组,字典,字符串方法笔记
01. 列表 1.1 列表的定义 List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组 专门用于存储 一串 信息 列表用 [] 定义,数据 之间使用 , 分隔 列 ...
随机推荐
- Android图片选择---MultiImageSelector的使用
Github地址:https://github.com/lovetuzitong/MultiImageSelector MultiImageSelector主要是图片选择功能. AndroidStud ...
- matlab读取csv文件数据并绘图
circle.m(画二维圆的函数) %该函数是画二维圆圈,输入圆心坐标和半径%rectangle()函数参数‘linewidth’修饰曲线的宽度%'edgecolor','r',edgecolor表示 ...
- iOS开发基础篇-手写控件
一.手写控件的步骤 1)使用相应的控件类创建控件对象: 2)设置该控件的各种属性: 3)添加空间到视图中: 4)如果是 UIButton 等控件,还需考虑控件的单击事件等: 二.添加 UIButton ...
- kafka原理深入研究 (转 )
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
- System.Diagnostics.Process 测试案例
1.System.Diagnostics.Process 执行exe文件 创建项目,编译成功后,然后把要运行的exe文件拷贝到该项目的运行工作目录下即可,代码如下: using System; usi ...
- 在CENTOS上源码搭建LNMP环境
前言 1.操作前提: CentOS Linux release 7.5.1804: sudo用户(需要root权限): 2.需要安装的组件: nginx稳定版:nginx-1.14.0: MariaD ...
- UOJ10 UTR #1 pyx的难题(堆)
显然优先级越高完成的越早,二分答案后用堆模拟就是O(nlog2n)的.考虑去一个log.先固定特殊题的优先级为最低,模拟一遍.这样在特殊题被扔过来到T的这段时间内,如果将特殊题的优先级提高至超过这其中 ...
- 从备份文件bak中识别SQL Server的版本
SQLServer 的备份文件是以.bak 为后缀的文件,如果想要通过备份文件查看数据库版本,通常的做法就是把数据库还原,但是在还原的过程,如果不是相同的数据库版本,就会导致无法还原: 在数据库中,低 ...
- win10应用商店打不开,错误代码0x80131500
我也突然遇到这个问题,一开始找各种方法也解决不了.然后在外网找到方法. 很多人只是把代理开了,只要关了就可以了.这点不累述,都会提到. 我的win10应用商店有两个错误代码0x80131500和0x8 ...
- 【XSY3042】石像 拓扑排序 状压DP 洲阁筛
题目大意 有 \(n\) 个整数 \(a_1,a_2,\ldots,a_n\),每个数的范围是 \([1,m]\).还有 \(k\) 个限制,每个限制 \(x_i,y_i\) 表示 \(a_{x_i} ...