精华内容
下载资源
问答
  • Python 还包含了一个数据类型 —— set (集合)。集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称...

    cebff10636aaeef68a1a58a6ec2140c7.png

    Python 还包含了一个数据类型 —— set (集合)。 集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。 集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。

    创建集合set

    大括号或 set() 函数可以用来创建集合。  set集合类需要的参数必须是迭代器类型的,如:序列、字典等,然后转换成无序不重复的元素集。由于集合是不重复的,所以可以对字符串、列表、元组进行去重操作。

    1、创建空集合

    >>> s=set()>>> sset()>>> s1=set([]) #列表>>> s1set()>>> s2=set(()) #元组>>> s2set()>>> s3=set({}) #字典>>> s3set()
    注意:想要创建空集合,你必须使用 set() 而不是 {}。后者用于创建空字典,我们在后面介绍的一种数据结构。 2、创建非空集合

    即列表,元组,字典不在是空值,举两个例子
    >>> s1=set([1,2,3,4])>>> s1{1, 2, 3, 4}  >>> s3=set({'a':2,'b':3,'c':4})>>> s3{'c', 'a', 'b'}
    注:字典转set集合,需要注意的是,只取了字典的key,相当于将字典中的dict.keys()列表转成set集合。

    集合的操作

    1、集合添加

    集合的添加有两种方式,分别是add和update。但是它们在添加元素时是由区别的:
    • add()方法

      把要传入的元素作为一个整体添加到集合中,如:

    >>> s=set('one')>>> s{'e', 'o', 'n'}>>> s.add('two')>>> s{'e', 'two', 'o', 'n'}
    • update()方法

      是把要传入的元素拆分成单个字符,存于集合中,并去掉重复的字符。

      可以一次添加多个值,如:

    >>> s=set('one')>>> s{'e', 'o', 'n'}>>> s.update('two')>>> s{'e', 'n', 't', 'w', 'o'}

    2、集合删除

    集合的删除操作使用的方法跟列表是一样的,使用的也是remove方法。如:

    setVar.remove(element)

    • setVar :为一个set类型的变量

    • element :表示要查找并删除的元素

    • 函数作用:

    • 在集合setVar中查找element元素,如果存在则删除;如果没找到,则报错。

    >>> s=set('one')>>> s{'e', 'o', 'n'}>>> s.remove('e')>>> s{'n', 'o'}

    setVar.discard(element)

    • setVar :为一个set类型的变量

    • element :表示要查找并删除的元素

    • 函数作用:

    • 在集合setVar中查找element元素,如果存在则删除;如果没找到,则什么也不做。

    >>> sListset([1, 2, 3, 4, 5])>>> sList.discard(1)>>> sListset([2, 3, 4, 5])

    s.pop()

    • s:为set类型的变量

    • 函数作用:

    • 删除并返回set类型的s中的一个不确定的元素,如果为空引发KeyError错误。

    >>> sListset([2, 3, 4, 5])>>> sList.pop()2

    s.clear()

    • s:set类型的变量

    • 函数作用:

    • 清空s集合中的所有元素

    >>> sListset([3, 4, 5])>>> sList.clear()>>> sListset([])

    3、集合的遍历

    集合的遍历跟序列的遍历方法完全一样。
    >>> s=set('one')>>> s{'e', 'o', 'n'}>>> for i in s:    print(i)... ...eon>>>
    另一种遍历方式:
    >>> s=set('one')>>> s{'e', 'o', 'n'}>>> for idex,i in enumerate(s):        print (idex,i)... ...0 e1 o2 n>>>
    变量idex表示集合中元素i的索引。

    4、集合其他方法

    893baa945c9190991aefbcfc74dd081d.png 集合的一些操作符

    既然是集合,那就会遵循集合的一些操作方法,如求交集、并集、差集等。

    1、交集

    Python中求集合的交集使用的符号是“&”,返回连个集合的共同元素的集合,即集合的交集。

    >>> st1 = set('python')>>> st1set(['h', 'o', 'n', 'p', 't', 'y'])>>> st2 = set('htc')>>> st2set(['h', 'c', 't'])>>> st1 & st2set(['h', 't'])

    2、并集(合集)

    Python中求集合的并集用的是符号“|”,返回的是两个集合所有的并去掉重复的元素的集合。

    >>> st1set(['h', 'o', 'n', 'p', 't', 'y'])>>> st3 = set('two')>>> st3set(['o', 't', 'w'])>>> st1 | st3set(['p', 't', 'w', 'y', 'h', 'o', 'n'])

    3、差集

    Python中差集使用的符号是减号“-”。

    >>> st1set(['1', '3', '2', '5', '4', '7', '6'])>>> st2 = set('4589')>>> st2set(['9', '8', '5', '4'])>>> st1 - st2set(['1', '3', '2', '7', '6'])

    返回的结果是在集合st1中但不在集合st2中的元素的集合。

    4、集合的不同

    查看两个集合的不同之处,使用的difference函数,等价于差集。如:

    s1.difference(s3)

    这种不同指的是集合s3相对于集合s1,不同的地方,也就是所有在集合s1中,而不再集合s2中的的元素组成的新集合。

    >>> s1set([1, 2, 3, 4, 5])>>> s2set([1, 2, 3, 4])>>> s1.difference(s2)set([5])>>> s3set(['1', '8', '9', '5'])>>> s1.difference(s3)set([1, 2, 3, 4, 5]

    集合的范围判断

    集合可以使用大于(>)、小于(=)、小于等于(<=)、等于(==)、不等于(!=)来判断某个集合是否完全包含于另一个集合,也可以使用子父集判断函数。

    定义三个集合s1,s2,s3:

    >>> s1=set([1, 2, 3, 4, 5])>>> s2=set([1, 2, 3, 4])>>> s3=set(['1', '8', '9', '5'])

    大于(>)或大于等于(>=)

    >>> s1 > s2True>>> s1 > s3False>>> s1 >= s2True

    表示左边集合是否完全包含右边集合,如集合s1是否完全包含集合s2。

    小于(

    >>> s2 < s1True>>> s1 < s3False>>> s3 < s1False

    表示左边的集合是否完全包含于右边的集合,如集合s1是否完全包含于集合s2。

    等于(==)、不等于(!=)

    >>> s1 == s2False>>> s2 == s3False>>> s1 != s2True

    判断两个集合是否完全相同。

    不可变集合frozenset

    Python中还有一种不可改变的集合,那就是frozenset,不像set集合,可以增加删除集合中的元素,该集合中的内容是不可改变的,类似于字符串、元组。

    >>> f = frozenset()>>> ffrozenset([])>>> f = frozenset('asdf')>>> ffrozenset(['a', 's', 'd', 'f'])>>> f = frozenset([1,2,3,4])>>> ffrozenset([1, 2, 3, 4])>>> f = frozenset((1,2,3,4))>>> ffrozenset([1, 2, 3, 4])>>> f = frozenset({1:2, 'a':2, 'c':3})>>> ffrozenset(['a', 1, 'c'])

    - END -

    文源网络,仅供学习之用,如有侵权,联系删除。往期精彩

    15016de2ecf1515478fcb0c82c095260.png

    ◆  50款开源工具你都用过吗?

    ◆  python+C、C++混合编程的应用

    ◆  python网络爬虫的基本原理详解

    89a67ade849c42ef98027742669cb931.png

    展开全文
  • Documentation says:The constructor builds a list whose items are the same and in the same order as iterable‘s items. iterable may be either a sequence, a container that supports iteration, or an ...

    Documentation says:

    The constructor builds a list whose items are the same and in the same order as iterable‘s items. iterable may be either a sequence, a container that supports iteration, or an iterator object. If iterable is already a list, a copy is made and returned, similar to iterable[:]...

    But if I have an object a of my class A, that implements __iter__, __len__ and __getitem__, which interface is used by list(a) to iterate my object and what logic is behind this?

    My quick experimenting confuses me:

    class A(object):

    def __iter__(self):

    print '__iter__ was called'

    return iter([1,2,3])

    def __len__(self):

    print '__len__ was called'

    return 3

    def __getitem__(self, index):

    print '__getitem(%i)__ was called' % index

    return index+1

    a = A()

    list(a)

    Outputs

    __iter__ was called

    __len__ was called

    [1, 2, 3]

    A.__iter__ was called first, ok. But why then A.__len__ was called? And then why A.__getitem__ was not called?

    Then I turned __iter__ to a generator

    And this changed the order of magic method calls!

    class B(object):

    def __iter__(self):

    print '__iter__ was called'

    yield 1

    yield 2

    yield 3

    def __len__(self):

    print '__len__ was called'

    return 3

    def __getitem__(self, index):

    print '__getitem(%i)__ was called' % index

    return index+1

    b = B()

    list(b)

    Outputs

    __len__ was called

    __iter__ was called

    [1, 2, 3]

    Why B.__len__ was called first now? But why then B.__getitem__ was not called, and conversion was done with B.__iter__?

    And what confuses me most is why the order of calls of __len__ and __iter__ is different in cases of A and B?

    展开全文
  • These lists are then stored in a map object (assuming Python 3.x). A map object is an iterator, which can be converted to a list by calling list on it, as shown above. Often, though, you don't need ...

    I want to cast set in list to list like below.

    before: [(1, 1, 1), (1, 1, 0), (1, 0, 1)]

    after: [[1, 1, 1], [1, 1, 0], [1, 0, 1]]

    I need the as simple code as possible.

    解决方案>>> x = [(1, 1, 1), (1, 1, 0), (1, 0, 1)]

    >>> list(map(list, x))

    [[1, 1, 1], [1, 1, 0], [1, 0, 1]]

    Explanation

    map(list, x) takes an iterable x and applies function list to each element of this iterable. Thus the tuple (1, 1, 1) becomes the list [1, 1, 1], (1, 1, 0) becomes [1, 1, 0] and (1, 0, 1) becomes [1, 0, 1].

    These lists are then stored in a map object (assuming Python 3.x). A map object is an iterator, which can be converted to a list by calling list on it, as shown above. Often, though, you don't need to make this explicit conversion because iterator allows you to traverse the elements directly:

    >>> for elem in map(list, x):

    ... print(elem)

    ...

    [1, 1, 1]

    [1, 1, 0]

    [1, 0, 1]

    展开全文
  • 有时候,我们需要从集合或者列表中随机挑选某个数,或者随机挑选多个数出来,这个时候我们就可以利用python自带的模块来实现。具体如下代码 在列表中随机挑选一个数from random import choice List=[1,2,3,4]...

    有时候,我们需要从集合或者列表中随机挑选某个数,或者随机挑选多个数出来,这个时候我们就可以利用python自带的模块来实现。具体如下代码


    在列表中随机挑选一个数

    from random import choice
    List=[1,2,3,4]
    choice(List)


     
    
     那么我们如何在一个集合里面随机挑选一个数呢?很简单,可以直接把集合转为list 
    

    from random import choice
    Set=set([1,2,3,4,5])
    choice(list(Set))



    接下来,我们可能遇到需要多个在集合或者列表中的随机数,这个时候我们需要用另外一个模块。

    from random import sample
    Set=set([1,2,3,4,5])
    List=[1,2,3,4,5,6]
    sample.(list(Set),2)
    sample.(List,2)


    这里的2就是需要随机数的个数。

    展开全文
  • 2019-12-19 15:53 − 1、描述 python中isinstance()函数,是python中的一个内置函数,用来判断一个函数是否是一个已知的类型,类似type()。 2、语法 isinstance(object,classinfo) 参数: object:实例对象 ...
  • 可以存储任意数据类型的集合列表里:可以存储不同的数据类型 s= print s,type(s)列表里面也可以嵌套列表(列表:也是一种数据类型) s=] print s,type(s)2)列表的特性# # 索引# print service# print service# # 切片#...
  • 读取列表中第三个元素 l spam 读取列表中倒数第二个元素 l从第二个元素开始截取列表 七、python 列表操作的函数和方法 函数 作用list.append(‘元素’) ...将seq元组转为列表 list.remove(k) 将k从list删除 del....
  • Python编程学习笔记:列表Python容器包括列表、元组、集合与字典。这些数据结构中都涉及到很多的方法,在这里对比较常用的一些方法进行介绍,不用每个方法都记住,熟悉常用的记牢就可以啦。我们先来看列表。一、列表...
  • 集合类型 数学上,,把set称做由不同的元素组成的集合,集合(set)的成员通常被...数学集合转为Python的集合对象很有效,集合关系测试和union、intersection等操作符在Python里也同样如我们所预想地那样工作。和其他...
  • set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集...将列表转为集合:list1=[1,3,4,3,2,1]list1=set(list1)print(list1)结果如下:(1,2,3,4)扩展举例:python将3X4...
  • #-*-coding:utf-8-*-#1、字典dict = {'name':'Zara','age':7,'class':'First'}#字典转为字符串,返回: {'age': 7, 'name': 'Zara', 'class': 'First'}print type(str(dict)),str(dict)#字典可以转为元组,返回:('...
  • 1、list转换为数组python中list转换为数组的方法为:b = np.array(list)今天在使用该方法将二维list转换为二维数组时一直不成功,结果仍然是两个list,最后发现是两个list的元素数目不一样导致的,最后修改使两者...
  • python如何把列表转换为集合发布时间:2020-09-21 14:21:24来源:亿速云阅读:146作者:小新小编给大家分享一下python如何把列表转换为集合,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家...
  • 数学集合转为Python的集合对象很有效,集合关系测试和union、intersection等操作符在Python里也同样如我们所预想地那样工作。  和其他容器类型一样,集合支持用in和not in操作符检查成员,由len()内建函数得到集合...
  • set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集...将列表转为集合:list1=[1,3,4,3,2,1]list1=set(list1)print(list1)结果如下:(1,2,3,4)扩展举例:python将3X4...
  • Python2代码转为Python3

    2021-01-29 23:16:40
    本文将介绍如何使用`2to3`命令,将Python2代码转为Python3. 支持转换单个Python文件、指定目录下所有Python文件、在原文件上修改、输出到指定目录 等多种方式。 命令2to3简介 在安装Python时 2to3 会自动安装,...
  • I have a list users_with_invites_ids_list, formed by loop where I append values to the list, in python that looks like this:...[ObjectId('55119e14bf2e4e010d8b48f2')], [ObjectId('54624128bf2e4e5e558b5a...
  • 数组 我们都知道数组就是一群相同数据类型的数据的集合。数组可以装这几种数据:整数、浮点数、字符串、对象,注意装整数必须全装整数。其实关于数组没有什么可以说的,知道有这个东西就行。创建数组:member=[1,2,3...
  • 本文实例讲述了Python中列表元素转为数字的方法。分享给大家供大家参考,具体如下:有一个数字字符的列表:numbers = [‘1‘, ‘5‘, ‘10‘, ‘8‘]想要把每个元素转换为数字:numbers = [1, 5, 10, 8]用一个循环来...
  • 在数据分析期间,我们面临着将列表中的每个元素转换为子列表的方案。因此,在本文,我们将需要一个普通列表作为输入,并转换成列表列表,其中每个元素都成为一个子列表。使用for循环这是一种非常简单的方法,其中...
  • Python中集合set()的使用及处理

    千次阅读 2019-04-15 20:29:12
    Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set会被自动过滤 以上代码运行结果为: ...
  • Python3 集合

    2021-07-30 07:20:24
    例如:第一章 Python 机器学习入门之pandas的使用 文章目录系列文章目录前言一、集合操作1. 查询2. 添加3. 删除二、集合的数学运算1. 差集(1) `difference()` 返回第一个集合差集部分(2) `difference_update()` ...
  • I am trying to convert a set to a list in Python 2.6. I'm using this syntax:first_list = [1,2,3,4]my_set=set(first_list)my_list = list(my_set)However, I get the following stack trace:Traceback (most r...
  • 列表转为集合: list1=[1,3,4,3,2,1] list1=set(list1) print(list1) 结果如下: (1,2,3,4) 扩展举例: python将3X4的矩阵列表转换为4X3列表 matrix = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], ]...
  • python集合【全用法】

    万次阅读 多人点赞 2019-07-02 14:44:12
    python中列表、元组、集合、字典这四种可以存放多个数据元素的集合,他们在总体功能上都起着存放数据的作用,却都有着各自的特点。本片文章我们会对集合的用法做详细说明。 演示环境: python3.6 pycharm的...
  • 1.列表 创建方法:['a','b','c',1,2,3] 列表操作 使用+可以将多个列表拼接 使用*可以重复复制列表 l[m:n]:列表m到n-1的内容 append(‘d’):将元素d添加到列表尾部 l1.extend(l2):将列表l2所有元素添加...
  • python集合详细介绍

    2020-04-24 20:52:08
    集合用法2.1 创建集合2.2 集合常用方法2.2.1 in 和 not in来检查集合中的元素2.2.2 获取集合的长度或者元素的数量len()函数2.2.3 向集合中添加单一元素.add()方法2.2.4 向集合中添加另一集合.update() 方法2.2.5 ...
  • 原博文2016-01-19 21:05 −1、构建字典的 2 个列表相同 >>> a = [1,2,3,4]>>> b = ['ab','ac','ad']>>> dict(zip(a,b)){1: 'ab', 2: 'ac', 3: 'ad'}>>> 2、构建字典的 ...014505相关推荐2017-05-19 13:35 −1、现在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,590
精华内容 6,236
关键字:

python中集合转为列表

python 订阅