列表

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 列表 元组 字典 集合的更多相关文章

  1. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  2. Python 列表&元组&字典&集合

    列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片.合并.删除等操作 可通过索引来向指定位置插入元素 可通过po ...

  3. Python列表,元组,字典,集合详细操作

    菜鸟学Python第五天 数据类型常用操作及内置方法 列表(list) ======================================基本使用====================== ...

  4. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  5. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  6. python_列表——元组——字典——集合

    列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...

  7. python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)

    列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...

  8. python 中列表 元组 字典 集合的区别

    先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...

  9. Python列表,元组,字典,字符串方法笔记

    01. 列表 1.1 列表的定义 List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组 专门用于存储 一串 信息 列表用 [] 定义,数据 之间使用 , 分隔 列 ...

随机推荐

  1. CodeChef Dynamic GCD

    嘟嘟嘟vjudge 我今天解决了一个历史遗留问题! 题意:给一棵树,写一个东西,支持一下两种操作: 1.\(x\)到\(y\)的路径上的每一个点的权值加\(d\). 2.求\(x\)到\(y\)路径上 ...

  2. identity server4 证书

    我们需要对token进行签名, 这意味着identity server需要一对public和private key. 幸运的是, 我们可以告诉identity server在程序的运行时候对这项工作进 ...

  3. Linux搜索文件、文件夹数、文件个数命令

    1.查看某文件夹下文件的个数:ls -l|grep "^-"|wc -l 2.查看某文件夹下文件目录的个数:ls -l|grep "^d"|wc -l 3.查看 ...

  4. Django学习笔记之表单验证

    表单概述 HTML中的表单 单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言.只要把input标签放在form标签中,然后再添加一个 ...

  5. SPOJ 7001 Visible Lattice Points (莫比乌斯反演)

    题意:求一个正方体里面,有多少个顶点可以在(0,0,0)位置直接看到,而不被其它点阻挡.也就是说有多少个(x,y,z)组合,满足gcd(x,y,z)==1或有一个0,另外的两个未知数gcd为1 定义f ...

  6. PHP中高级进阶之路

    纯自己总结,认为作为一个中高级的PHP程序员,应该必修的内容,以此鞭策自己,努力向着这个方向前进. 1. 技能自问 1) PHP7开始使用了吗?它的一些新特性? 2) 数据库分库分表的实现 3) My ...

  7. NOIP2002普及组复赛B 选数

    题目链接:https://ac.nowcoder.com/acm/contest/230/B 题目大意: 略 分析: DFS模板题. 代码如下: #include <bits/stdc++.h& ...

  8. form表单中新增button按钮,点击按钮表单会进行提交

    原生button控件,在非ie浏览器下,如果不指定type,默认为submit类型.如果不想自动提交表单,指定type=“button”

  9. 函数遍历DOM树

    //获取页面中的根节点--根标签   var root=document.documentElement;//html   //函数遍历DOM树   //根据根节点,调用fn的函数,显示的是根节点的名 ...

  10. FileZilla-02

    WordPress的权限方案 通常,所有文件应由您的Web服务器上的用户(ftp)帐户拥有,并且应该可由该帐户写入.在共享主机上,文件永远不应归Web服务器进程本身所有(有时这是www,或apache ...