Python元组,列表,字典,集合
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元组,列表,字典,集合的更多相关文章
- python中元组/列表/字典/集合
转自:https://blog.csdn.net/lobo_seeworld/article/details/79404566
- python 元组 列表 字典
type()查看类型 //取整除 **幂 成员运算符: in x在y序列中,就返回true 反之 not in 身份运算符: is is not 逻辑运算符 and or not 字符编码 问题 ...
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- python :列表 字典 集合 类 ----局部变量可以改全局变量
#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...
- python基础一 -------如何在列表字典集合中根据条件筛选数据
如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...
- python字符串/列表/字典互相转换
python字符串/列表/字典互相转换 目录 字符串与列表 字符串与字典 列表与字典 字符串与列表 字符串转列表 1.整体转换 str1 = 'hello world' print(str1.spli ...
- python元组 列表 (取值、替换、插入、添加、删除)
1.元组 列表 字典 元组( 元组是不可变的) hello = (1,2,3,4,5) type(hello)
- Python列表,元组,字典,集合
列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. 列表追加数据的方法:append(),extend(数组),insert(位 ...
- Python之旅Day2 元组 字符串 字典 集合
元组(tuple) 元组其实跟列表差不多,也是存一组数,与列表相比,元组一旦创建,便不能再修改,所以又叫只读列表. 语法: names = ("Wuchunwei","Y ...
- Python基础2 列表 字典 集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
随机推荐
- [Java][Liferay] 模拟用户
以admin的帐号登陆 Navigation to Users and Organizations -> All Users 找到你要查看的user,点击Actions->Imperson ...
- linux常用安装命令(ubuntu)
安装 net-tools 安装命令 sudo apt install net-tools 安装ssh sudo apt-get install openssh-server 查看是否安装成功 sudo ...
- WebView加载页面,带链接的Img在页面第一次加载时无法显示的问题
在做一个App的过程中,用到WebView来显示几个页面.在这个过程中发现有些页面的显示出现了异常:页面中的Img链接在页面第一次加载时无法正常显示图片,退出页面再次进入后可正常显示.开始以为是Web ...
- Html+CSS--->第一周初探
html css 学了一周的前端,谈谈我的感想 我一直在使用sublime text 3来编辑我的代码,其中有很多很好用的快捷键和插件大大提高了我的开发效率 在这里我极力推荐使用编辑器来进行学习前端. ...
- GET和POST区别(转)
作者:silence链接:https://www.zhihu.com/question/28586791/answer/153556269来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...
- cf868F. Yet Another Minimization Problem(决策单调性 分治dp)
题意 题目链接 给定一个长度为\(n\)的序列.你需要将它分为\(m\)段,每一段的代价为这一段内相同的数的对数,最小化代价总和. \(n<=10^5,m<=20\) Sol 看完题解之后 ...
- python3绘图示例5(基于matplotlib:正弦图等)
#!/usr/bin/env python# -*- coding:utf-8 -*- import numpy as npimport pylab as pyimport matplotlib as ...
- Spring Boot入门程序
创建第一个Spring Boot的入门程序. 带你一步一步的,搭建第一个Spring Boot 的入门程序,并成功运行,通过实践过程,初步认识和了解如何使用Spring Boot 创建应用程序. 一. ...
- python 输出奇偶数并排序
random_numbers = [] for i in range(40): random_numbers.append(random.randint(1, 100)) num1 = [] num2 ...
- IDEA 打包jar
1.ctrl+shift+alt+s 弹出项目设置窗口,点击Artifacts页签,点+号,选择jar Empty.修改jar name,将右侧需要打包进去的资源拖到左侧,记住Output direc ...