元组:
元组基本和列表一样,区别是 元组的值一旦创建 就不能改变了
tup1=(1,2,3,4,5)
print(tup1[2])
-------------------------------------
元组中只包含一个元素时,需要在元素后面添加逗号
不加逗号:tup1=(10)
print(type(tup1))
<class 'int'>
加逗号:tup1=(10,)
print(type(tup1))
<class 'tuple'>
-----------------------------------------
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
url=('192.168.85.130','lzc','root',123456)
addr=('abc','def','hijk','nmn')
tup3=url+addr
print(tup3)
------------------------------------------
一个可变的元组
tup=('a','b',['A','B'])
print(tup[2][1])
tup[2][0]='x'
tup[2][1]='y'
print(tup)
结果
B
('a', 'b', ['x', 'y'])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
总之一句话:元组指向的对象不能变,但是元组中列表的值可以改变
-----------------------------------------
tup=('192.168.35.130','lzc','root',123456,'mysql')
tup2=(1,2,3,4,5,)
# 计算元素个数
# print(len(tup))
# 返回元素中的最小值(必须是int类型,不然会报错)
# print(min(tup2))
# 列表转换为元组
# list=[1,2,3,4,5,6]
# tup3=tuple(list)
# print(type(tup))
# 查:
# print(tup[0])
# 取元组的的下标为2的值
# print(tup[2])
# 去元组前面3个元素的值
# print(tup[:3])
# 链接两个元组
# tup3=tup+tup2
# print(tup3)
# 删除元组
# del tup2
# print(tup2)
对比两个元组:
import operator
tup=('192.168.35.130','lzc','root',123456,'mysql')
tup2=(1,2,3,4,5,)
print(operator.eq(tup,tup2))
------------------------------------------
# 计算元素个数
# 返回元素中的最小值、最大值
# 列表转换为元组
# 查:
# 取元组的的下标为2的值
# 去元组前面3个元素的值
# 链接两个元组
# 删除元组
#对比两个元组:
******************************************************
集合:
集合:集合是一种数据类型,一个类似列表的东西
与列表相比:它的特点是无序的,不重复 也就是说集合中是没有重复的数据
set拥有类似dict的特点:可以用{}花括号来定义;其中的元素没有序列,也就是是非序列类型的数据;而且,set中的元素不可重复,这就类似dict的键.
set也有继承了一点list的特点:如可以原处修改(事实上是一种类别的set可以原处修改,另外一种不可以)
定义集合:
定义一个空集合
s=set()
print(type(s))
1、通过强制类型转换
nums=[1,1,2,3,34,2]
num_set=set(nums)
2、直接定义集合
num_set1={1,2,3,4,5,6} #与定义字典的区别是 字典中含有冒号 集合没有
set1.add(2222) #添加元素
print('添加元素:',set1)
set1.update([111,222,333]) #把list里面的东西更新进去 如果是字符串 会一个一个得添加进去
s1={1,2,4,6,7,8,9,90}
s1.update('ljk') #需要先update 然后才能打印
print(s1)
结果:
{1, 2, 4, 6, 7, 8, 9, 11, 'j', 'k', 22, 'l', 90}
#update 字符串是以元素下标为个体添加进去,如'abc'那就是将a,b,c分别添加进去
# update 列表也是以元素下标为个体添加进去 ['abc','lkj'] 将'abc'和'lkj添加进去
print(set1)
set1.remove(111) #删除元素,如果元素不存在就会报错
print('删除元素,如果元素不存在就会报错:',set1)
set1.pop() #删除一个随记的元素,并返回删除的元素
print('删除一个随记的元素,并返回删除的元素:',set1)
set1.discard('ddd') #删除的元素存在,删除,不存在不做任何处理
print('删除的元素存在,删除,不存在不做任何处理:',set1)
print(set1.clear()) 将set全部清空
set1={1,2,3,457,78}
set2={1,2,4,6,78}
set3={1,2}
print('交集:',set1.intersection(set2))
print('并集:',set1.union(set2))
print('并集2:',set1 | set2)
print('差集:',set1.difference(set2))
print('差集2:',set1 - set2)
print('判断set3是不是set2的子集:',set3.issubset(set2))
print('判断set2是不是set3的子集:',set2.issuperset(set3))
print('判断是否有交集:',set1.isdisjoint(set3))
print('^ 除相同元素以外的元素',set1^set2)
-------------------------------------------------------------------------------------------------------
# 创建一个空集合
# s=set()
# print(type(s))
# 定义一个集合
# s={1,2,3,4,}
# print(type(s))
# s1={1,2,4,6,7,8,9,90}
# s2={2,3,5,4,6,'f'}
# # 添加元素
# s1.add('kskksks')
# print(s1)
#添加元素update
# s1.update([11,22])
# s1.update('ljk')
# print(s1)
# 字符串是以元素下标为个体添加进去,如'abc'那就是将a,b,c分别添加进去
# 列表也是以元素下标为个体添加进去 ['abc','lkj'] 将'abc'和'lkj添加进去
#删除元素
# s1.remove(90)
# print(s1)
# #随机的删除一个元素
# s1.pop()
# print(s1)
#删除的元素村存在就删除,不存在就不删除
# s1.discard(190)
# print(s1)
#删除整个集合
# print(set1.clear())
#list转换为集合
# l=[1,2,3,4,5,7]
# s1=set(l)
# print(type(s1))
#取两个集合间的交集
# s1={1,2,4,6,7,8,9,90}
# s2={2,3,5,4,6,'f'}
# print(s1.intersection(s2))
# 取两个集合的并集(两种方式)
# s1={1,2,3,5}
# s2={4,3,6,2}
# print(s1.union(s2))
# print(s1|s2)
#取差集 (两种方式)
# s1={1,2,3,5}
# s2={4,3,6,2}
# print(s1.difference(s2))
# print(s1-s2)
set1={1,2,3}
set2={1,2,3,4,6,7}
# 判断两个集合是否有交集
# print(set1.isdisjoint(set2))
#判断set1是不是set2的子集
# print(set1.issubset(set2))
#判断set1是不是set2的子集
# print(set1.issuperset(set2))
# '判断是否有交集
# print(set1.isdisjoint(set2))
# 除相同元素以外的元素
# print(set1^set2)
- python 字典元组集合字符串
s1 = ''hello, world!'' s2 = '\n\hello, world!\\n' print(s1, s2, end='') s1 = '\141\142\143\x61\x62\x ...
- python中元组、列表、字典、集合知识
像列表一样处理字符串: 仅需要看字符串的首字符就知道如何处理该字符串的情况也很常见.例如,如果有一个姓与名的列表,您可以使用与列表相同的语法查看名与姓的第一个字符.这种看待字符串的方法叫做分片(sli ...
- Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!
三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是 ...
- python之字符串,列表,字典,元组,集合内置方法总结
目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...
- Python序列结构--集合
集合:元素之间不允许重复 集合属于Python无序可变序列,元素之间不允许重复 集合对象的创建与删除 直接将值赋值给变量即可创建一个集合 >>> a = {3,5}>>& ...
- python 中的集合set
python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...
- 【转】Python数据类型之“集合(Sets)与映射(Mapping)”
[转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...
- Python的set集合详解
Python 还包含了一个数据类型 -- set (集合).集合是一个无序不重复元素的集.基本功能包括关系测试和消除重复元素.集合对象还支持 union(联合),intersection(交),dif ...
- Python列表、集合与字典(3)
目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识 列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系. 在Pytho ...
随机推荐
- bzoj 1862: [Zjoi2006]GameZ游戏排名系统 & bzoj 1056: [HAOI2008]排名系统
傻叉了一晚上,把t打成x,然后这题神奇在于输出一段数,不足的不用输出,一开始我的是直接找没有后面就退,然后这样会格式错误囧……然后最后zj的还卡了下空间,于是不用string就过了……string毁一 ...
- CF724E Goods transportation
最大流既视感 然后 TLEMLE既视感 然后 最大流=最小割 然后 dp[i][j]前i个点j个点在S集合,最小割 然后 dp[i][j]=min(dp[i-1][j]+p[i]+j*c,dp[i-1 ...
- 使用JavaScript OOP特性搭建Web应用
最近,我面试了一个有五年 Web 应用程序开发经验的软件开发人员.四年半来她一直在从事 JavaScript 相关的工作,她自认为 JavaScript 技能非常好,但在不久之后我就发现实际上她对 J ...
- linux查找文件目录及mysql卸载
我们要卸载 mysql但是不知道其安装在哪里了,可以用 where +关键词 的方式查找,如上图 输入 whereis mysql 后,下面显示出了4个包含mysql的位置. ..... 查看安装m ...
- bnuoj25660 Two Famous Companies
题目链接:https://www.bnuoj.com/v3/problem_show.php?pid=25660 这个二分真的是烧脑QAQ,想了一晚上才懂了一个大概. 首先,整体思路是二分,直观上感受 ...
- AtCoder Grand Contest 031 B - Reversi(DP)
B - Reversi 题目链接:https://atcoder.jp/contests/agc031/tasks/agc031_b 题意: 给出n个数,然后现在你可以对一段区间修改成相同的值,前提是 ...
- [linux]ubuntu限速软件
wondersharper 1 安装wondershaper:sudo apt-get install wondershaper2 限制下载,上传速度(1500是限制下载速度(实际限速150k左右), ...
- oepncv-学习笔记一
安装opencv文件时若需要cmake编译,如果中间出现 解决办法是: 在opencv的文件中找到包含cmakelist.txt的文件夹,把where is the source code:的路径改成 ...
- web开发环境和要求配置
对于eclipse,有很多版本,但要开发WEB程序,需要用到j2ee版本,如果是winform或android 用不带ee的版本就行,两者的明显区别是在看帮助->关于->Eclipse J ...
- idea 多模块引用
roma-server 引用common-utils的类,所以在roma-server 的pom中配置 <dependency> <groupId>org.springfram ...