1.元组

元组是有序的,只有index和count两种方法,一看到元组,就提醒是不可更改的

names = ('wll', 'ly', 'jxx', 'syq')

(1)index方法

print(names.index('ly'))  #找'ly'在元组中的第几个,从0开始

#输出结果
1

(2)count方法

print(names.count('wll'))  #计数,'wll'在元组中有几个

#输出
1

(3)元组的输出

print(names)  #输出元组
print(names[0]) #输出元组的第一个元组,下标从0开始 #输出
('wll', 'ly', 'jxx', 'syq')
wll
#逐个输出元组中的每个元素
for i in names:
print(i)
print("------------------")
for i in range(len(names)):
print(names[i]) #输出
wll
ly
jxx
syq
------------------
wll
ly
jxx
syq

2.列表

列表是有序的

names = ["WuLanLan", "LuYue", "JiangXiaoXia", "ShenYuQian", "WangRong"]

(1)增

names.append("WangRong")  # 插在最后一个
print(names)
names.insert(1, "ShiYuTing") # 插在第二个的位置上
print(names) #输出
['WuLanLan', 'LuYue', 'JiangXiaoXia', 'ShenYuQian', 'WangRong', 'WangRong'] ['WuLanLan', 'ShiYuTing', 'LuYue', 'JiangXiaoXia', 'ShenYuQian', 'WangRong', 'WangRong']

(2)删

names.remove("WangRong")  #如果有多个,只删除一个
print(names) del names[2] #删除列表中第三个元素,下标是2,从零开始
print(names) names.pop() # 默认不输入下标,则删除最后一个值
print(names) #输出
['WuLanLan', 'LuYue', 'JiangXiaoXia', 'ShenYuQian'] ['WuLanLan', 'LuYue', 'ShenYuQian'] ['WuLanLan', 'LuYue']

(3)改

names[2] = "Jiangxiaoxia"  #把第三个元素改为‘Jiangxiaoxia’
print(names) #输出
['WuLanLan', 'LuYue', 'Jiangxiaoxia', 'ShenYuQian', 'WangRong']

(4)查

print(names)
print(names[0]) # 切片,输出第一个元素
print(names[1:3]) # 切片,左闭右开,输出从第二个到第三个
print(names[3]) # 切片,输出第四个元素
print(names[-1]) # 切片,-1表示最后一个元素
print(names[-3:-1]) # 切片,从左往右数,不能从右往左数
print(names[-3:]) # 切片,数到最后一个,冒号后面忽略
print(names[:3]) # 切片,第一个开始数,冒号前面可以忽略,相当于[0:3]
print(names[0:-1:2]) # 切片,从0开始到最后一个,步长为2
print(names[::2]) # 切片,从0开始到最后一个,步长为2
print(names[:]) # 切片,从0开始到最后一个,默认步长为1 #输出
['WuLanLan', 'LuYue', 'JiangXiaoXia', 'ShenYuQian', 'WangRong']
WuLanLan
['LuYue', 'JiangXiaoXia']
ShenYuQian
WangRong
['JiangXiaoXia', 'ShenYuQian']
['JiangXiaoXia', 'ShenYuQian', 'WangRong']
['WuLanLan', 'LuYue', 'JiangXiaoXia']
['WuLanLan', 'JiangXiaoXia']
['WuLanLan', 'JiangXiaoXia', 'WangRong']
['WuLanLan', 'LuYue', 'JiangXiaoXia', 'ShenYuQian', 'WangRong']

(5)其他方法

print(names.index("WuLanLan"))  # 索引
print(names[names.index("WuLanLan")]) #WuLanLan是0,输出列表里0的元素,还是WuLanLan #输出
0
WuLanLan
print(names.count("WangRong"))  # 计数,列表里WangRong的个数

#输出
1
names.clear()  # 清除
print(names) #输出
[]
names.reverse()  # 反转
print(names) #输出
['WangRong', 'ShenYuQian', 'JiangXiaoXia', 'LuYue', 'WuLanLan']
names.sort()  # 排序,按照ASCII码排序
print(names) #输出
['JiangXiaoXia', 'LuYue', 'ShenYuQian', 'WangRong', 'WuLanLan']
names2 = [1, 2, 3, 4]
names.extend(names2) # 合并
print(names) #输出
['JiangXiaoXia', 'LuYue', 'ShenYuQian', 'WangRong', 'WuLanLan', 1, 2, 3, 4]
# 循环输出列表
for i in names:
print(i) #输出
JiangXiaoXia
LuYue
ShenYuQian
WangRong
WuLanLan
import copy
names = ["WuLanLan", "LuYue", ["Tom", "Jack"], "JiangXiaoXia", "ShenYuQian", "WangRong"]
names2 = copy.deepcopy(names) # 潜copy,指向同一块地址
print(names)
print(names2)
names[3] = "沈玉倩"
names[2][0] = "Rose"
print(names) #输出
['WuLanLan', 'LuYue', ['Tom', 'Jack'], 'JiangXiaoXia', 'ShenYuQian', 'WangRong']
['WuLanLan', 'LuYue', ['Tom', 'Jack'], 'JiangXiaoXia', 'ShenYuQian', 'WangRong']
['WuLanLan', 'LuYue', ['Rose', 'Jack'], '沈玉倩', 'ShenYuQian', 'WangRong']

3.字典

字典 key-value 是无序的

info = {"": "Wulanlan",
"": "Luyue",
"": "Shenyuquan",
"": "Jiangxiaoxia"
}

(1)输出字典里的元素

for i in info:  # 建议用这种
print(i, info[i])
print("-------------------")
for k, v in info.items(): # 不建议用这种,数据量大的话很崩溃
print(k, v) #输出
29 Wulanlan
13 Luyue
18 Shenyuquan
06 Jiangxiaoxia
-------------------
29 Wulanlan
13 Luyue
18 Shenyuquan
06 Jiangxiaoxia
print(sorted(info.items(), key=lambda d: d[0], reverse=True))  # 根据key的值排序后倒序输出字典里的元素

#输出
[('', 'Wulanlan'), ('', 'Shenyuquan'), ('', 'Luyue'), ('', 'Jiangxiaoxia')]
print(info.items())  # 把字典转成列表
info_3 = dict.fromkeys([1, 2, 3], [1, {"name": "wll"}, 111]) # 也是一种创建字典
print(info_3)
info_3[2][1]["name"] = "bbb" # 你以为只改了一个,其实都改了
print(info_3) #输出
dict_items([('', 'Wulanlan'), ('', 'Luyue'), ('', 'Shenyuquan'), ('', 'Jiangxiaoxia')])
{1: [1, {'name': 'wll'}, 111], 2: [1, {'name': 'wll'}, 111], 3: [1, {'name': 'wll'}, 111]}
{1: [1, {'name': 'bbb'}, 111], 2: [1, {'name': 'bbb'}, 111], 3: [1, {'name': 'bbb'}, 111]}

(2)改

info[""] = "吴兰兰"
print(info)
info.update(info_2) # 有的更新,没有的创建
print(info) #输出
{'': '吴兰兰', '': 'Luyue', '': 'Shenyuquan', '': 'Jiangxiaoxia'}
{'': '吴兰兰', '': 'LuYue', '': 'Shenyuquan', '': 'Jiangxiaoxia', '': 'Denglei', '': 'Huaxiaofeng'}

(3)增

info[""] = "Wangrong"
print(info) #输出
{'': 'Wulanlan', '': 'Luyue', '': 'Shenyuquan', '': 'Jiangxiaoxia', '': 'Wangrong'}

(4)删

info.pop("")  # 标准删
print(info) del info[""]
print(info) info.popitem() # 随机删
print(info) #输出
{'': 'Luyue', '': 'Shenyuquan', '': 'Jiangxiaoxia'} {'': 'Shenyuquan', '': 'Jiangxiaoxia'} {'': 'Shenyuquan'}

(5)查

print(info[""])  # 不建议用这种方法,除非很确定字典里有这个键值

print(info.get(""))  # 一般用这种方法

print("" in info)  # info.has_key("29")

#输出
Wulanlan Wulanlan True

(6)多级嵌套

 list_move = {"电影": {
"美国": ["恐怖游轮", "记忆碎片", "穆赫兰道"],
"中国": ["唐人街探案", "杀破狼", "使徒行者"]
}, "电视剧": {
"美国": ["城堡岩", "神探夏洛克", "假面真情"],
"中国": ["暗黑者", "武林外传", "无证之罪"]
}, "动漫": {
"日本": ["名侦探柯南", "进击的巨人", "灌篮高手"],
"中国": ["画江湖系列", "狐妖小红娘", "全职高手"]
}
}
list_move["动漫"]["中国"][1] = "斗破苍穹"
print(list_move) list_move.setdefault("小说", {"中国": [1,2]}) # 在字典里找"小说",如果能取到,返回,如果取不到,就创建一个新的key,value值为逗号后面的
print(list_move) #输出
{'电影': {'美国': ['恐怖游轮', '记忆碎片', '穆赫兰道'], '中国': ['唐人街探案', '杀破狼', '使徒行者']}, '电视剧': {'美国': ['城堡岩', '神探夏洛克', '假面真情'], '中国': ['暗黑者', '武林外传', '无证之罪']}, '动漫': {'日本': ['名侦探柯南', '进击的巨人', '灌篮高手'], '中国': ['画江湖系列', '斗破苍穹', '全职高手']}}
{'电影': {'美国': ['恐怖游轮', '记忆碎片', '穆赫兰道'], '中国': ['唐人街探案', '杀破狼', '使徒行者']}, '电视剧': {'美国': ['城堡岩', '神探夏洛克', '假面真情'], '中国': ['暗黑者', '武林外传', '无证之罪']}, '动漫': {'日本': ['名侦探柯南', '进击的巨人', '灌篮高手'], '中国': ['画江湖系列', '斗破苍穹', '全职高手']}, '小说': {'中国': [1, 2]}}

4.集合

集合,无序的,去重

list_1 = [1, 1, 2, 3, 4, 5, 6, 8, 2, 5]
list_1 = set(list_1)
list_2 = set([3, 22, 3, 5, 10, 12])
print(list_1, type(list_1), list_2) #打印集合1,1的类型,集合2 #输出
{1, 2, 3, 4, 5, 6, 8} <class 'set'> {3, 5, 10, 12, 22} #list_1的类型是set,集合,集合是自动去重的

(1)交集

print(list_1.intersection(list_2))  #交集

#输出
{3, 5}
print(list_1 & list_2)  #交集

#输出
{3, 5}

(2)并集

print(list_1.union(list_2))  #并集

#输出
{1, 2, 3, 4, 5, 6, 8, 10, 12, 22}
print(list_1 | list_2)  #并集

#输出
{1, 2, 3, 4, 5, 6, 8, 10, 12, 22}

(3)差集

print(list_1.difference(list_2))  # 差集,在1里面不在2里面

print(list_2.difference(list_1))  # 差集,在2里面不在1里面

#输出
{1, 2, 4, 6, 8} {10, 12, 22}
print(list_1 - list_2)  # 差集,在1里不在2里

print(list_2 - list_1)  # 差集,在2里不在1里

#输出
{1, 2, 4, 6, 8} {10, 12, 22}

(4)对称差集

print(list_1.symmetric_difference(list_2))  # 对称差集,去掉1和2的交集之后再合并

#输出
{1, 2, 4, 6, 8, 10, 12, 22}
print(list_1 ^ list_2)  # 对称差集,去掉1和2的交集之后再并

#输出
{1, 2, 4, 6, 8, 10, 12, 22}

(5)子集

list_3 = set([1, 2, 3])
print(list_3.issubset(list_1)) #3是不是1的子集,是则返回True,否则返回False
print(list_1.issuperset(list_3)) #1是不是3的父子集,即3是不是1的子集 #输出
True
True

(6)其他方法

list_3 = set([1, 2, 3])
list_4 = set([4, 5, 6])
print(list_3.isdisjoint(list_4)) # 3和4没有交集返回为True,有交集返回为False #输出
True
# 添加一项
list_1.add(66)
print(list_1) #输出
{1, 2, 3, 4, 5, 6, 66, 8} #集合是无序的,添加到哪个位置不知道
# 添加多项
list_1.update([88, 2333])
print(list_1) #输出
{1, 2, 3, 4, 5, 6, 66, 8, 88, 2333}
# 删除,删除一项,如果有多个1怎么办删哪个,集合天生去重呀!!!
list_1.remove(1)
print(list_1) #输出
{2, 3, 4, 5, 6, 8}
# 长度
print(len(list_1)) #输出
7
# 1在集合里吗
print(1 in list_1) # 1不在集合里吗
print(1 not in list_1) #输出
True False
# 潜复制
list_5 = list_1.copy()
print(list_5) #输出
{1, 2, 3, 4, 5, 6, 8}
# 删除任一一个元素,并且将那个元素返回
print(list_1.pop(), list_1) #输出
1 {2, 3, 4, 5, 6, 8}
# 删除,remove删除不存在的会报错,discard只返回None
print(list_1.discard(6666), list_1) #输出
None {2, 3, 4, 5, 6, 8}

Python元组,列表,字典,集合的更多相关文章

  1. python中元组/列表/字典/集合

    转自:https://blog.csdn.net/lobo_seeworld/article/details/79404566

  2. python 元组 列表 字典

    type()查看类型 //取整除 **幂 成员运算符: in  x在y序列中,就返回true 反之  not in 身份运算符: is is not 逻辑运算符 and or not 字符编码 问题 ...

  3. Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据

    Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...

  4. python :列表 字典 集合 类 ----局部变量可以改全局变量

    #列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...

  5. python基础一 -------如何在列表字典集合中根据条件筛选数据

    如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...

  6. python字符串/列表/字典互相转换

    python字符串/列表/字典互相转换 目录 字符串与列表 字符串与字典 列表与字典 字符串与列表 字符串转列表 1.整体转换 str1 = 'hello world' print(str1.spli ...

  7. python元组 列表 (取值、替换、插入、添加、删除)

    1.元组 列表 字典 元组( 元组是不可变的) hello = (1,2,3,4,5) type(hello)

  8. Python列表,元组,字典,集合

    列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. 列表追加数据的方法:append(),extend(数组),insert(位 ...

  9. Python之旅Day2 元组 字符串 字典 集合

    元组(tuple) 元组其实跟列表差不多,也是存一组数,与列表相比,元组一旦创建,便不能再修改,所以又叫只读列表. 语法: names = ("Wuchunwei","Y ...

  10. Python基础2 列表 字典 集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

随机推荐

  1. spring mvc改造成spring boot

    一.新增依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  2. (生产)axios - 请求接口

    参考:https://www.awesomes.cn/repo/mzabriskie/axios axios 介绍 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中 ...

  3. CSS3制作3D旋转视频展示区

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 跨平台移动开发phonegap/cordova 3.3全系列教程-helloworld

    1.    建立专案(cordova) 打开cmd命令行 cordova create ACESMobile aces.mobile ACES cd aces mobile 如图 2.    安装插件 ...

  5. Struts2_HelloWorld_7_1

    大致了解应用的运行过程: 由请求路径开始,浏览器端通过URL向tomcat发送http请求(如:http://localhost:8080/Struts2_0100_Introduction/hell ...

  6. instanceof和相关函数

    instanceof:如果左边对象是右边类型所表示类(或任意一子类)的一个实例,则返回true,否则false.判断左边真实类型是不是右边的类或它的派生类. //实例一 Object o= new L ...

  7. 诸葛io | 精细化运营分析解决方案

    类型: 定制服务 软件包: business intelligence internet media solution collateral 联系服务商 产品详情 解决方案 概要 数据监测 ? 异常发 ...

  8. Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet Unknown Faceted Project Problem (Java Version Mismatch)

    project 编译问题,需要三处的jdk版本要保持一致,才能编译通过. 1.在项目上右键properties->project Facets->修改右侧的version  保持一致 2. ...

  9. 转发-react 性能深度探讨

    作者:尤雨溪链接:https://www.zhihu.com/question/31809713/answer/53544875来源:知乎 这里面有好几个方面的问题. 1. 原生 DOM 操作 vs. ...

  10. mysql一些常用的查询语句总结

    工作中会遇到一些比较有用的mysql查询语句,有了它,可以对mysql进行更全面的维护和管理,下面就写一下我记录的 1.按照字段ru_id查询dsc_order_goods表中ru_id出现次数由多到 ...