本文目录一览:
- 1、python基础-列表 元组 集合 字典区别和用法
- 2、python--set(集合)
- 3、python 列表,元组,字典,集合,字符串相互转换
- 4、python数据类型(集合)
- 5、python里集合无序,为什么列表进行升序排列后不能直接转化成集合?就因为集合是无序的吗?
python基础-列表 元组 集合 字典区别和用法
Python中有六个标准的数据类型:Number(数字),String(字符串),List(列表),Tuple(元组),Set(集合),Dictionary(字典)。其中:Number(数字)、String(字符串)、Tuple(元组)是不可变数据,其余三种是可变数据。
转义字符
输出结果
布尔值
布尔值是一个逻辑值,只有真(True)和假(False)
输出结果
Python数据结构包括列表(list)、元组(tuple)、集合(set)、字典(dict)等,这里主要讲解列表,列表有两个特点:
输出结果
修改表中元素
输出结果
列表中插入元素
输出结果
输出列表中的元素
输出结果
元素是否在列表元素中及统计个数
输出结果
查找某个元素在列表中的位置
输出结果
顺序结构
输出结果
if 条件 1
输出结果
if 条件 2
输出结果
循环结构
输出结果
循环语句求和
输出结果
可重复,类型可不同。 类型不同也是跟数组最本质的区别。 python里的列表用“[]”表示:
对比a和b的结果
列表的 --- 增 -- 删 -- 改 -- 查
循环输出列表内容,在结尾添加指定的内容
字符串是 Python 中最常用的数据类型。 我们可以使用引号('或")来创建字符串。
元组与列表相似,不一样之处在于 元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组建立很简单,只须要在括号中添加元素,并使用逗号隔开便可。
字典是另外一种可变容器模型,且可存储任意类型对象。
字典的每一个键值(key=value)对用冒号(:)分割,每一个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式以下所示:
d = {key1 : value1, key2 : value2 }
字典函数
集合(set)是一个 无序的不重复元素序列。
可使用大括号 { } 或者 set() 函数建立集合,注意:建立一个空集合必须用 set() 而不是 { },由于 { } 是用来建立一个空字典。
它的主要做用以下: 1.去重,把一个列表变成集合,就自动去重了 。2.关系测试,测试两组数据以前的交集、差集、并集等关系。
关系测试
输出结果
元素的添加和删除
python--set(集合)
一、创建集合
创建非空集合:集合中set括号中需要的参数的数据类型有:序列(包括字符串、列表、元组),字典可以转为集合,注意数值类型不能作为集合的参数,如int类型。
二、添加元素
add() 方法是将要添加的元素作为一个整体添加到集合中
update() 方法是把要传入的元素拆分成单个字符,存于集合中,并去掉重复的
三、删除元素
集合的删除操作使用的方法跟列表是一样的,使用的也是 remove 方法,只能单个删除
四、遍历集合
五、集合与字符串、列表、元组互转,集合转字典
六、查找元素并删除
函数原型: a.discard(b)
参数说明:a为一个set类型的变量;b表示要查找并删除的元素
函数作用:在集合setVar中查找element元素,如果存在则删除;如果没找到,则什么也不做。该函数没有返回值
七、pop用法
函数原型: set1.pop() 删除并返回集合set1中的第一个元素,如果为空引发KeyError错误+
八、clear、copy和len的用法
clear 方法用于清空集合中的所有元素
copy 方法用于集合拷贝
len 跟求序列的长度的函数len()是一样的,返回的是集合中有多少个元素
九、求集合的交集、并集、差集和difference的用法
求集合的 交集 使用的符号是 “”
求集合的 并集 用的是符号 “|”
求集合的 差集 使用的符号是减号 “-”
difference 等价于集合的差集 ,查看两个集合的不同之处。这种不同指的是集合s1相对于集合s2,不同的地方,也就是所有在集合s1中,而不再集合s2中的的元素组成的新集合
十、运算符判断集合间关系和issuperset、issubset的用法
集合可以使用大于()、小于()、大于等于(=)、小于等于(=)、等于(==)、不等于(!=)来判断某个集合是否完全包含于另一个集合,也可以使用子父集判断函数。
issuperset 集合st1是否是集合st2的父集
issubset 集合st1是否是集合st2的子集
十一、不可变集合frozenset的用法
frozenset 该集合中的内容是不可改变的,其他功能及操作跟可变集合set一样
python 列表,元组,字典,集合,字符串相互转换
li = [1, 2, 3]
t = tuple(li)
print(t, type(t))
del list #先清除list缓存
tu = (1, 2, 3)
li = list(tu)
print(li, type(li))
li = ['人', '生', '苦', '短']
str1 = ''.join(li)
print(str1, type(str1))
str2 = 'hello python'
li1 = str2.split(' ')
print(li1, type(li1))
list1 = ['name', 'age', 'sex']
list2 = ['张三', 18, '男']
dict = {}
for i in range(len(list1)):
dict[list1[i]] = list2[i]
print(dict, type(dict))
del dict#清除缓存
list1 = ['name', 'age', 'sex']
list2 = ['张三', 18, '男']
d = dict(zip(list1, list2))
print(d)
dict = {'name': '张三', 'age': 18, 'sex': '男'}
keys = list(dict.keys())
values = list(dict.values())
print(keys, type(keys))
print(values, type(values))
list3 = [['key1','value1'],['key2','value2'],['key3','value3']]
print(dict(list3))
list1 = [1, 3, 4, 3, 2, 1]
s1 = set(list1)
print(s1, type(s1))
list1 = [1, 3, 4, 3, 2, 1]
s1 = set(list1)
list2 = list(s1.intersection(s1))
print(list2, type(list2))
list = []
a = '人生苦短'
list.append(a)
print(list)
b = tuple(list)
print(b, type(b))
dict = {'name': 'xiaoming', 'age': 18}
tup = tuple(dict)
print(tup) # 只转换了key
tup2 = tuple(dict.values())
print(tup2)
dic1 = {'a': 1, 'b': 2}
str1 = str(dic1)
dic2 = eval("{'name':'xiaoming', 'age':18}")
print(dic2, type(dic2))
str1 = 'hello'
s1 = set(str1)
print(s1, type(s1))
dic1 = {'a': 1, 'b': 2, 'c': 3}
dic2 = {value: key for key, value in dic1.items()}
print(dic2)
python数据类型(集合)
1.集合(set)是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)
2.基本功能是进行成员关系测试和删除重复元素
3.可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
4.因为set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中。
1.创建集合
s=set()#创建一个空集合
s1={1,2,3,'a','python'}
2.删除重复的元素
集合是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)
3.成员关系测试(检测某个成员是否在集合中)
案例:从终端输入5位数,以空格隔开,把这5位数存入列表中,剔除重复的数据,打印出来
#提示,列表转集合,集合转列表
a=input("请输入5位数字:")
mylist=a.split()
print(mylist)
b=set(mylist)
c=list(b)
print(c)
4.集合常用操作
1.添加元素
2.删除元素
3.删除整个集合
4.获取集合的长度
5.不支持改元素
集合操作-添加元素
格式:
集合.add(元素)
格式:
集合.update(元素)
区别:
add不能添加列表,update可以
update是将字符串中的拆分成字符进行追加
add,是当做整体追加在集合中
#案例:从终端输入一个数字就加入集合中,然后打印,又输入一个数字,然后打印,直到输入-1,退出输入
#然后打印最终的集合
ms=set()
while 1:
a=int(input("请输入一个数字:"))
if a==-1:
break
ms.add(a)
print(ms)
print(ms)
#案例:从终端输入一个字符串就加入集合中,然后打印,又输入一个字符串,然后打印,直到输入q,退出输入
#然后打印最终的集合,字符串要分开存储,如输入hello,存储的列表是{'h','e','l','0'}
ms=set()
while 1:
a=input("请输入一个字符串:")
if a=='q':
break
ms.update(a)
print(ms)
print(ms)
集合操作-删除元素及删除整个集合
格式:
集合.remove(元素) # 元素如果不存在会引发KeyError
集合.discard(元素) # 元素如果不存在不发生任何事
集合.pop() # 集合元素是字符串类型时删除随机元素。 集合元素是其他数据类型时,删除左边第一个元素
del 集合名 #删除整个集合
#案例:有集合{1,2,3,'hello','world'},删除全部字符串,然后最左边第一个元素
a={1,2,3,'hello','world'}
a.discard("hello")
a.discard("world")
a.pop()
print(a)
集合操作-获取集合的长度
格式:
len(集合名)
#案例:有集合{1,2,3,4,'hello','a'},保留1个元素,其他的删除,假如元素个数不确定
s={1,2,3,4,'hello','a'}
for i in range(len(s)-1):
s.pop()
print(s)
集合的集运算
集合的交集,并集,差集,对称差集的运算
{1,2,3,4}交集{4,5,6,7} --4 交集()
{1,2,3,4}并集{4,5,6,7} -1,2,3,4,5,6,7 并集(|)
{1,2,3,4}差集{4,5,6,7} -1,2,3 差集(-)
{1,2,3,4}对称差集{4,5,6,7}-1,2,3,5,6,7 4同时出现在两个集合中,不选它 对称差集(^)
#案例:使用花括号和set创建各一个集合,然后对集合进行交、并、差、对称差运算
s={1,2,3,4,5,6}
s1=set([6,7,8,9,10])
print(ss1)
print(s|s1)
print(s-s1)
print(s^s1)
python里集合无序,为什么列表进行升序排列后不能直接转化成集合?就因为集合是无序的吗?
set()需要一个可迭代的对象作为参数,而列表的sort方法是在原列表上进行的排序,它的返回值是None。
应该这样做:
nums.sort()
print(set(nums))