网站建设资讯

NEWS

网站建设资讯

python集合长度函数 python判断集合长度

python集合?

*事先说明:以下代码及结果来自本设备Python控制台,在不同设备上可能结果有区别,望自己尝试为妙

成都创新互联公司长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为陕西企业提供专业的成都做网站、网站设计,陕西网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

集合(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 module

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 module

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 module

d * 2

TypeError: unsupported operand type(s) for *: 'set' and 'int'

(作者的小观点:既然集合是不能重复的,那么乘以、重复是没有意义的)

python中集合的特点和注意点?

1、集合概念

Python中的集合,是一个无序的、没有重复项的集。它支持数学概念上的集合操作,如交集、并集、补集和差集。集合是可变的,可以在其中添加或删除项。集合用花括号“{}”括起来,并用逗号“,”来分隔其中的项。

2、创建集合

可以使用花括号“{}”创建集合,集合会自动去除重复的项。下面的集合包含了几种用字符串表示的水果:

# 创建fruits集合时,'apple'出现了两次

fruits = {'apple', 'banana', 'watermelon', 'strawberry', 'apple'}

fruits  # 查看fruits集合,'apple'只有保留了一个

{'apple', 'strawberry', 'banana', 'watermelon'}

与列表、元组、字典一样,集合也可以用工厂函数set()来创建。set()函数的参数要么为空,要么为可迭代对象(如列表、元组和字符串):

fruits = set(['apple', 'banana', 'watermelon', 'strawberry', 'apple'])   # 以列表为参数创建集合

fruits

{'apple', 'strawberry', 'banana', 'watermelon'}

numbers = set((1, 2, 3, 3, 2, 4))   # 以元组为参数创建集合

numbers

{1, 2, 3, 4}

letters = set('banana')   # 以字符串为参数创建集合

letters

{'b', 'a', 'n'}

如果想要创建一个空集合,那么使用空的花括号“{}”是行不通的,因为这样创建的是一个空字典:

empty = {}

empty

{}

type(empty)

class 'dict'

创建空集合的唯一方式就是使用不包含任何参数的set()函数:

empty = set()

empty  # 空集合表示为set()

set()

type(empty)

class 'set'

3、集合添加项

集合是可变的数据类型,在创建集合之后,可以使用集合的add()方法向其添加项:

numbers = {1, 2, 3}

numbers.add(4)   # 向numbers集合中添加整数4

numbers

{1, 2, 3, 4}

numbers.add('five')   # 向numbers集合中添加字符串'five'

numbers

{1, 2, 3, 4, 'five'}

numbers.add((5, 6, 7))   # 向numbers集合中添加元组(5, 6, 7)

numbers

{1, 2, 3, 4, (5, 6, 7), 'five'}

如果向某个集合中添加已经存在的项,那么什么也不会发生:

fruits = {'apple', 'strawberry', 'banana', 'watermelon'}

fruits

{'banana', 'apple', 'watermelon', 'strawberry'}

fruits.add('apple')   # 添加已经存在的项'apple'

fruits   # fruits集合并没有改变

{'banana', 'apple', 'watermelon', 'strawberry'}

也可以使用集合的update()方法向集合中添加项,参数必须是可迭代对象,如列表、字符串或另一个集合。类似于列表的append()方法和extend()方法,但区别是集合的update()方法总是会将可迭代对象“展开”:

numbers = {1}

numbers

{1}

numbers.update((5, 6, 7))

numbers   # 可以看出update()方法和add()方法的区别

{1, 5, 6, 7}

numbers.update({4, 5}, {6, 7, 8})   # 参数为两个集合

numbers

{1, 4, 5, 6, 7, 8}

4、集合删除项

可以使用集合的remove()方法删除某个集合中的指定项:

numbers = {1, 2, 3, 5, 7}

numbers.remove(1)

numbers

{2, 3, 5, 7}

numbers.remove(3)

numbers

{2, 5, 7}

如果试图删除集合中不存在的项,那么Python解释器会报错:

numbers = {1, 2, 3, 5, 7}

numbers.remove(4)

Traceback (most recent call last):

File "stdin", line 1, in module

KeyError: 4

还可以使用集合的discard()方法来删除项,它和remove()方法唯一的区别是,当试图删除不存在的项时,discard()方法并不会报错,而是什么也不会发生:

numbers = {1, 2, 3, 5, 7}

numbers.discard(1)

numbers

{2, 3, 5, 7}

numbers.discard(3)

numbers

{2, 5, 7}

numbers.discard(4)

numbers  # 什么也没发生

{2, 5, 7}

5、检查某个项是否在集合中

集合的in操作符用于检查指定项是否在集合中,not in操作符用于检查指定项是否不在集合中:

numbers = {1, 2, 3, 5, 7}

1 in numbers   # 1在numbers集合中,返回True

True

3 in numbers   # 3在numbers集合中,返回True

True

4 in numbers   # 4不在numbers集合中,返回False

False

4 not in numbers   # not in是in的反向操作

True

6、查看集合的长度

集合的内建函数len()用于查看集合的长度,即集合中项的个数:

empty = set()

len(empty)

numbers = {1, 2, 3, 5, 7}

len(numbers)

5

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计算长度的函数

直接len()方法就好了。

len(obj, /)

Return the number of items in a container


新闻名称:python集合长度函数 python判断集合长度
分享URL:http://njwzjz.com/article/docpigi.html