1.元组

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

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

(1)index方法

  1. print(names.index('ly')) #找'ly'在元组中的第几个,从0开始
  2.  
  3. #输出结果
  4. 1

(2)count方法

  1. print(names.count('wll')) #计数,'wll'在元组中有几个
  2.  
  3. #输出
  4. 1

(3)元组的输出

  1. print(names) #输出元组
  2. print(names[0]) #输出元组的第一个元组,下标从0开始
  3.  
  4. #输出
  5. ('wll', 'ly', 'jxx', 'syq')
  6. wll
  1. #逐个输出元组中的每个元素
  2. for i in names:
  3. print(i)
  4. print("------------------")
  5. for i in range(len(names)):
  6. print(names[i])
  7.  
  8. #输出
  9. wll
  10. ly
  11. jxx
  12. syq
  13. ------------------
  14. wll
  15. ly
  16. jxx
  17. syq

2.列表

列表是有序的

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

(1)增

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

(2)删

  1. names.remove("WangRong") #如果有多个,只删除一个
  2. print(names)
  3.  
  4. del names[2] #删除列表中第三个元素,下标是2,从零开始
  5. print(names)
  6.  
  7. names.pop() # 默认不输入下标,则删除最后一个值
  8. print(names)
  9.  
  10. #输出
  11. ['WuLanLan', 'LuYue', 'JiangXiaoXia', 'ShenYuQian']
  12.  
  13. ['WuLanLan', 'LuYue', 'ShenYuQian']
  14.  
  15. ['WuLanLan', 'LuYue']

(3)改

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

(4)查

  1. print(names)
  2. print(names[0]) # 切片,输出第一个元素
  3. print(names[1:3]) # 切片,左闭右开,输出从第二个到第三个
  4. print(names[3]) # 切片,输出第四个元素
  5. print(names[-1]) # 切片,-1表示最后一个元素
  6. print(names[-3:-1]) # 切片,从左往右数,不能从右往左数
  7. print(names[-3:]) # 切片,数到最后一个,冒号后面忽略
  8. print(names[:3]) # 切片,第一个开始数,冒号前面可以忽略,相当于[0:3]
  9. print(names[0:-1:2]) # 切片,从0开始到最后一个,步长为2
  10. print(names[::2]) # 切片,从0开始到最后一个,步长为2
  11. print(names[:]) # 切片,从0开始到最后一个,默认步长为1
  12.  
  13. #输出
  14. ['WuLanLan', 'LuYue', 'JiangXiaoXia', 'ShenYuQian', 'WangRong']
  15. WuLanLan
  16. ['LuYue', 'JiangXiaoXia']
  17. ShenYuQian
  18. WangRong
  19. ['JiangXiaoXia', 'ShenYuQian']
  20. ['JiangXiaoXia', 'ShenYuQian', 'WangRong']
  21. ['WuLanLan', 'LuYue', 'JiangXiaoXia']
  22. ['WuLanLan', 'JiangXiaoXia']
  23. ['WuLanLan', 'JiangXiaoXia', 'WangRong']
  24. ['WuLanLan', 'LuYue', 'JiangXiaoXia', 'ShenYuQian', 'WangRong']

(5)其他方法

  1. print(names.index("WuLanLan")) # 索引
  2. print(names[names.index("WuLanLan")]) #WuLanLan是0,输出列表里0的元素,还是WuLanLan
  3.  
  4. #输出
  5. 0
  6. WuLanLan
  1. print(names.count("WangRong")) # 计数,列表里WangRong的个数
  2.  
  3. #输出
  4. 1
  1. names.clear() # 清除
  2. print(names)
  3.  
  4. #输出
  5. []
  1. names.reverse() # 反转
  2. print(names)
  3.  
  4. #输出
  5. ['WangRong', 'ShenYuQian', 'JiangXiaoXia', 'LuYue', 'WuLanLan']
  1. names.sort() # 排序,按照ASCII码排序
  2. print(names)
  3.  
  4. #输出
  5. ['JiangXiaoXia', 'LuYue', 'ShenYuQian', 'WangRong', 'WuLanLan']
  1. names2 = [1, 2, 3, 4]
  2. names.extend(names2) # 合并
  3. print(names)
  4.  
  5. #输出
  6. ['JiangXiaoXia', 'LuYue', 'ShenYuQian', 'WangRong', 'WuLanLan', 1, 2, 3, 4]
  1. # 循环输出列表
  2. for i in names:
  3. print(i)
  4.  
  5. #输出
  6. JiangXiaoXia
  7. LuYue
  8. ShenYuQian
  9. WangRong
  10. WuLanLan
  1. import copy
  2. names = ["WuLanLan", "LuYue", ["Tom", "Jack"], "JiangXiaoXia", "ShenYuQian", "WangRong"]
  3. names2 = copy.deepcopy(names) # 潜copy,指向同一块地址
  4. print(names)
  5. print(names2)
  6. names[3] = "沈玉倩"
  7. names[2][0] = "Rose"
  8. print(names)
  9.  
  10. #输出
  11. ['WuLanLan', 'LuYue', ['Tom', 'Jack'], 'JiangXiaoXia', 'ShenYuQian', 'WangRong']
  12. ['WuLanLan', 'LuYue', ['Tom', 'Jack'], 'JiangXiaoXia', 'ShenYuQian', 'WangRong']
  13. ['WuLanLan', 'LuYue', ['Rose', 'Jack'], '沈玉倩', 'ShenYuQian', 'WangRong']

3.字典

字典 key-value 是无序的

  1. info = {"": "Wulanlan",
  2. "": "Luyue",
  3. "": "Shenyuquan",
  4. "": "Jiangxiaoxia"
  5. }

(1)输出字典里的元素

  1. for i in info: # 建议用这种
  2. print(i, info[i])
  3. print("-------------------")
  4. for k, v in info.items(): # 不建议用这种,数据量大的话很崩溃
  5. print(k, v)
  6.  
  7. #输出
  8. 29 Wulanlan
  9. 13 Luyue
  10. 18 Shenyuquan
  11. 06 Jiangxiaoxia
  12. -------------------
  13. 29 Wulanlan
  14. 13 Luyue
  15. 18 Shenyuquan
  16. 06 Jiangxiaoxia
  1. print(sorted(info.items(), key=lambda d: d[0], reverse=True)) # 根据key的值排序后倒序输出字典里的元素
  2.  
  3. #输出
  4. [('', 'Wulanlan'), ('', 'Shenyuquan'), ('', 'Luyue'), ('', 'Jiangxiaoxia')]
  1. print(info.items()) # 把字典转成列表
  2. info_3 = dict.fromkeys([1, 2, 3], [1, {"name": "wll"}, 111]) # 也是一种创建字典
  3. print(info_3)
  4. info_3[2][1]["name"] = "bbb" # 你以为只改了一个,其实都改了
  5. print(info_3)
  6.  
  7. #输出
  8. dict_items([('', 'Wulanlan'), ('', 'Luyue'), ('', 'Shenyuquan'), ('', 'Jiangxiaoxia')])
  9. {1: [1, {'name': 'wll'}, 111], 2: [1, {'name': 'wll'}, 111], 3: [1, {'name': 'wll'}, 111]}
  10. {1: [1, {'name': 'bbb'}, 111], 2: [1, {'name': 'bbb'}, 111], 3: [1, {'name': 'bbb'}, 111]}

(2)改

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

(3)增

  1. info[""] = "Wangrong"
  2. print(info)
  3.  
  4. #输出
  5. {'': 'Wulanlan', '': 'Luyue', '': 'Shenyuquan', '': 'Jiangxiaoxia', '': 'Wangrong'}

(4)删

  1. info.pop("") # 标准删
  2. print(info)
  3.  
  4. del info[""]
  5. print(info)
  6.  
  7. info.popitem() # 随机删
  8. print(info)
  9.  
  10. #输出
  11. {'': 'Luyue', '': 'Shenyuquan', '': 'Jiangxiaoxia'}
  12.  
  13. {'': 'Shenyuquan', '': 'Jiangxiaoxia'}
  14.  
  15. {'': 'Shenyuquan'}

(5)查

  1. print(info[""]) # 不建议用这种方法,除非很确定字典里有这个键值
  2.  
  3. print(info.get("")) # 一般用这种方法
  4.  
  5. print("" in info) # info.has_key("29")
  6.  
  7. #输出
  8. Wulanlan
  9.  
  10. Wulanlan
  11.  
  12. True

(6)多级嵌套

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

4.集合

集合,无序的,去重

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

(1)交集

  1. print(list_1.intersection(list_2)) #交集
  2.  
  3. #输出
  4. {3, 5}
  1. print(list_1 & list_2) #交集
  2.  
  3. #输出
  4. {3, 5}

(2)并集

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

(3)差集

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

(4)对称差集

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

(5)子集

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

(6)其他方法

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

    以admin的帐号登陆 Navigation to Users and Organizations -> All Users 找到你要查看的user,点击Actions->Imperson ...

  2. linux常用安装命令(ubuntu)

    安装 net-tools 安装命令 sudo apt install net-tools 安装ssh sudo apt-get install openssh-server 查看是否安装成功 sudo ...

  3. WebView加载页面,带链接的Img在页面第一次加载时无法显示的问题

    在做一个App的过程中,用到WebView来显示几个页面.在这个过程中发现有些页面的显示出现了异常:页面中的Img链接在页面第一次加载时无法正常显示图片,退出页面再次进入后可正常显示.开始以为是Web ...

  4. Html+CSS--->第一周初探

    html css 学了一周的前端,谈谈我的感想 我一直在使用sublime text 3来编辑我的代码,其中有很多很好用的快捷键和插件大大提高了我的开发效率 在这里我极力推荐使用编辑器来进行学习前端. ...

  5. GET和POST区别(转)

    作者:silence链接:https://www.zhihu.com/question/28586791/answer/153556269来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  6. cf868F. Yet Another Minimization Problem(决策单调性 分治dp)

    题意 题目链接 给定一个长度为\(n\)的序列.你需要将它分为\(m\)段,每一段的代价为这一段内相同的数的对数,最小化代价总和. \(n<=10^5,m<=20\) Sol 看完题解之后 ...

  7. python3绘图示例5(基于matplotlib:正弦图等)

    #!/usr/bin/env python# -*- coding:utf-8 -*- import numpy as npimport pylab as pyimport matplotlib as ...

  8. Spring Boot入门程序

    创建第一个Spring Boot的入门程序. 带你一步一步的,搭建第一个Spring Boot 的入门程序,并成功运行,通过实践过程,初步认识和了解如何使用Spring Boot 创建应用程序. 一. ...

  9. python 输出奇偶数并排序

    random_numbers = [] for i in range(40): random_numbers.append(random.randint(1, 100)) num1 = [] num2 ...

  10. IDEA 打包jar

    1.ctrl+shift+alt+s 弹出项目设置窗口,点击Artifacts页签,点+号,选择jar Empty.修改jar name,将右侧需要打包进去的资源拖到左侧,记住Output direc ...