⑴ 关于python集合运算
差集 a-b 从集合a中去除所有在集合b中出现的元素集合
并集 a|b 集合a,b中所有不重复的元素集合
交集 a&b 集合a,b中均出现的元素集合
如 a={1,2,3,4} b={2,4,6,8} a集合中减去b中出现的2,4 a-b为{1,3}
a|b 为 {1,2,3,4,6,8} a&b为 a ,b中均出现的{2,4}
⑵ python 怎么把list所有元素相乘
1、代码一
>>>fromfunctoolsimportrece
>>>rece(lambdax,y:x*y,[1,2,3,2,2])
24
2、代码二
lst=[1,2,3,4,5]
num=1
foriinlst:
num*=i
printnum
(2)python集合乘一个数字扩展阅读:
控制语句
if语句,当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。
for语句,遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。
while语句,当条件为真时,循环运行语句块。
try语句,与except,finally配合使用处理在程序运行中出现的异常情况。
class语句,用于定义类型。
def语句,用于定义函数和类型的方法。
pass语句,表示此行为空,不运行任何操作。
assert语句,用于程序调试阶段时测试运行条件是否满足。
with语句,Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。
⑶ python集合支持与整数的乘法运算吗
可以的,python支持多重数学运算
可以将集合设置成数组的形式,例如
3*[1 2 3 4]
⑷ python集合的运算(交集、并集、差集、补集)
我们在遇到一些问题的时候,使用集合的交集、并集和差集能够更便捷的帮助我们去解决问题,看下面一个例子。
某学校有两个班级,班级A需要学习数学、语文、英语、物理、化学和生物,班级B需要学习数学、语文、英语、政治、地理和历史。
我们可以直接看出A班级和B班级的交集为数学、语文和英语,并集为数学、语文、英语、物理、化学、生物、政治、地理、历史,A和B的差集为物理、化学和生物。
那么怎么使用Python去完成这些运算?
我们先在这里定义两个集合,
因为是求交集,因此A和B的位置调换依然不影响结果。
使用集合求并集的方式同样也是两种方式,一种是使用 ‘|’ 运算符进行操作,一种是使用 union() 方法来实现。
求并集的时候同样不需要注意 A 和 B 的位置关系。
使用集合求差集的方式同样也是两种方式,一种是使用 ‘-’ 运算符进行操作,一种是使用 difference() 方法来实现。
在方法2中注意 A 和 B 的位置不同的时候是有区别的,如果是 A 使用 difference() 方法,那么是输出 A 中有而 B 中没有的元素,如果是 B 使用 difference() 方法,那么是输出 B 中有而 A 中没有的元素。
学习完了集合,四种核心集合我们已经基本掌握,接下来几节我们来通过学习一些字符串的相关操作,学习字符串的过程中会穿插着前面简单介绍过但没仔细讲解的方法及操作。
⑸ 在python中输入一个数字列表,使用切片将奇数位上的数乘2,偶数位上的数加10,
list=[int(x) for x in input("输入数字列表,数字间用空格隔开:").split()]
#使用切片
print([x*2 for x in list[1::2]])
print([x+10 for x in list[::2]])
#不使用切片
print([x+10 if i%2==0 else x*2 for i,x in enumerate(list)])
⑹ python基础教程-集合的常用操作
关于集合这东西,个人感觉在工作中项目工程里,使用到的地方不太大,几乎没有,但是作为PYthon的基础知识之一,我们还是需要完善的学习他,之前写过一篇“python基础教程-集合的介绍和使用方法 ”我们大概的介绍了一下集合的使用,本经验作为一个集合的扩展给大家介绍一下集合的常用操作。
0python基础教程-集合的介绍和使用方法
集合的与操作
我们可以看到集合输出的效果会有一个set表示。
aaa = [1,2,3]bbb = [3,4,5,6]a_a = set(aaa)b_b = set(bbb)
集合中并集的表示:
k = a_a | b_b
printk
使用一个| 线表示 ,求出2个数的并集。
=========另外一种不同的表达方式================
vip = a_a.union(b_b) #并集print vip
集合中交集的表示 使用 ^ 表示求交集:例如:
k = a_a ^ b_b #交集合
==============
print (a_a.intersection(b_b)) # 求交!!!!
集合中求出不同项目的结果
print (a_a.difference(b_b))
需要单独说明的是求的是自己的和他人的不同,不是两者一起的不同,具体看例子输出效果:
集合中我们可以直接更新一个集合的结果在内存中:
a_a.difference_update(b_b) #求出结果并更新print a_a
⑺ python集合为什么不能直接乘数字
一定要记住的是: 集合和字典不支持索引,切片,相加,相乘操作的python 中 ,支持相乘的有字符串,列表,元组相乘是内容相乘n ,新的内容会重复n次
Python 索引 知识回顾,想回顾下python的序列结构有那些
1 列表(list)
2 元组(tuple)
3 集合(set)
4 字典(dict)
5 字符串(str)
一定要记住的是: 集合和字典不支持索引,切片,相加,相乘操作的python 中 ,支持相乘的有字符串,列表,元组相乘是内容相乘n ,新的内容会重复n次
⑻ 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(s&s1)
print(s|s1)
print(s-s1)
print(s^s1)
⑼ python列表里的元素乘以一个数
列表里的元素不能直接运算,可以取出元素运算如下:
nums=[3,5,8,2]
for m in nums:
print(m*6) #列表元素全部乘以6
⑽ python集合
*事先说明:以下代码及结果来自本设备Python控制台,在不同设备上可能结果有区别,望自己尝试为妙
集合(set),是一种Python里的类(class),
集合类似于列表(list),可更改,可迭代(iterable),但是元素不重复
定义集合使用花括号{},例如:
>>> s = {"apple", "banana", "strawberry", "watermelon"}
警告!!!如果使用空括号
>>> a = {}
>>> a.__class__
<class 'dict'>
a将成为一个字典
想要定义空集合,
请使用类名。
>>> a = set()
类名定义也可以把迭代转换为集合:
>>> b = set("abc")
>>> b
{'a', 'b', 'c'}
但是,保存后它是无序的。
>>> s
{'banana', 'watermelon', 'strawberry', 'apple'}
(结果仅供参考,在不同设备上略有不同)
下面介绍它的性质:
1. 可更改:
使用add(x)方法添加元素x:
>>> s.add("lemon")
>>> s
{'banana', 'strawberry', 'lemon', 'watermelon', 'apple'}
使用update(iter1, iter2, …)方法添加多个可迭代对象(如列表,元组(tuple),另一个集合)里的元素:
>>> s.update(("orange", "grape"))
>>> s
{'banana', 'strawberry', 'orange', 'lemon', 'watermelon', 'apple', 'grape'}
警告!!!如果使用字符串,字符串也会被迭代:
>>> a = set()
>>> a.update("apple")
>>> a
{'a', 'p', 'e', 'l'}
使用remove(x)移除元素x,如果x不存在,则抛出KeyError错误
>>> s.remove("lemon")
>>> s
{'banana', 'strawberry', 'orange', 'watermelon', 'apple', 'grape'}
>>> s.remove("cat")
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
s.remove("cat")
KeyError: 'cat'
使用discard(x)移除元素x,不会发生错误
>>> s.discard("grape")
>>> s
{'banana', 'strawberry', 'orange', 'watermelon', 'apple'}
>>> s.discard("dog")
>>> s
{'banana', 'strawberry', 'orange', 'watermelon', 'apple'}
2. 可迭代:
>>> for x in s:
... print(x)
banana
strawberry
orange
watermelon
apple
3. 可以使用 len 函数获取集合长度;
>>> len(s)
5
可以使用in关键字检查一个元素是否在集合内,将返回逻辑值(bool):
>>> "apple" in s
True
>>> "candy" in s
False
4.集合具有不重复性,因此它会自动去重:
>>> c = set("Hello World!")
>>> c
{' ', 'e', 'l', 'H', '!', 'r', 'W', 'o', 'd'}
5. 集合的运算
>>> d = set("abcdef")
>>> e = set("efghij")
>>> d
{'c', 'e', 'a', 'b', 'f', 'd'}
>>> e
{'h', 'e', 'g', 'j', 'f', 'i'}
>>> d - e # 集合d去掉集合e含有的元素,或者说集合d包含而集合e不包含的元素(不改变原集合)
{'a', 'b', 'd', 'c'}
>>> d | e # 集合d,e的所有元素
{'c', 'e', 'h', 'g', 'a', 'b', 'j', 'f', 'd', 'i'}
>>> d & e # 集合d,e都包含的元素
{'f', 'e'}
>>> d ^ e # 不同时出现在集合d, e中的元素
{'c', 'g', 'h', 'a', 'b', 'j', 'd', 'i'}
注意!!!
字符串、列表通用的+和*不适用于集合
>>> "abc" + "def"
'abcdef'
>>> [1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
>>> d + e
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
d + e
TypeError: unsupported operand type(s) for +: 'set' and 'set'
>>> "a" * 5
'aaaaa'
>>> [1] * 3
[1, 1, 1]
>>> d*3
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
d * 2
TypeError: unsupported operand type(s) for *: 'set' and 'int'
(作者的小观点:既然集合是不能重复的,那么乘以、重复是没有意义的)