精华内容
下载资源
问答
  • python中的列表解析与列表,字典,集合筛选数据1.列表listfrom random import randintdata = [randint(-100,70) for i in range(12)]print(data)randint()生成指定范围下(-100,70)的指定个数为(12)的随机数其中i ...

    python中的列表解析与列表,字典,集合筛选数据

    1.列表list

    from random import randint

    data = [randint(-100,70) for i in range(12)]

    print(data)

    randint()生成指定范围下(-100,70)的指定个数为(12)的随机数

    其中i 可以是其它字母(x,y,z,...都可以),代表每次被迭代的数,打印如下

    >>> data

    [62, -1, -9, 17, -93, -62, -31, -91, -31, -20, -62, 11]

    1.1普通方法

    先用普通方法来看看筛选出大于0的

    res = []

    for x in data:

    if x>= 0:

    res.append(x)

    print(res)

    结果如下

    >>> res

    [62, 17, 11]

    1.2列表解析

    现在用列表解析的方式筛选出大于0的,对比一下

    print([x for x in data if x >= 0])

    print(data)

    结果如下

    >>> [x for x in data if x >= 0]

    [62, 17, 11]

    >>> data

    [62, -1, -9, 17, -93, -62, -31, -91, -31, -20, -62, 11]

    我们可以看到data其实并没有变化

    我们来看一下列表解析这种结构[x for x in data if x >= 0]

    再做一个小实验

    >>> [x+3 for x in data if x >= 0]

    [65, 20, 14]

    我们把x换成了x+3,打印的每一项里也+3了,也就可以更好的理解这其中的原理了

    其实这个列表解析具体来说再执行过程中分了3个步骤:

    1.通过for x in data来遍历data

    2.加入if语句if x >= 0来筛选

    3.通过x+3这样一个表达式来循环输出到空列表[]中

    1.3 Filter函数

    1.3.1 lambda表达式

    在这之前我们有必要了解一下lambda x: x >= 0这是什么东西

    lambda表达式其实就是匿名函数,其中:

    冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。

    在此例中x即为参数 x >= 0为返回值。我们再来看一个稍微复杂的例子:

    lamxy=lambda x,y: x*y*x

    lamxy(2,1)

    优点:

    1.一个函数只会使用一次的话,比较简洁,不用多定义了一个函数

    2.lambda表达式可以和filter map结合使用

    1.4 总结

    就所用时间来说:列表解析

    1.3.2 使用filter函数

    >>> filter(lambda x: x >= 0,data)

    [62, 17, 11]

    filter,可以理解成过滤

    filter函数会对data中的每个元素调用lambda函数,最后返回调用结果为true的元素,

    在这里,即是x >=0元素。

    注意上面是python2下的结果,python3中filter函数返回的是一个对象,需做类型转换,如下

    res = filter(lambda x: x >= 0,data)

    print(list(res))

    这样在python3中打印出[62, 17, 11]的结果

    2 集合set

    python2下

    >>> data

    [62, -1, -9, 17, -93, -62, -31, -91, -31, -20, -62, 11]

    >>> s = set(data)

    >>> s

    set([-31, -62, -93, -91, 11, -20, 17, 62, -9, -1])

    >>> {x for x in s if x % 3 == 0}

    set([-93, -9])

    python3下

    >>> s = set(data)

    >>> s

    {-31, -62, -93, -91, 11, -20, 17, -1, -9, 62}

    >>> {x for x in s if x % 3 == 0}

    {-93, -9}

    这里我们还是用上一小节的data,可以看到set()方法有明显区别,python2下转化成了元祖,有点不好理解。python3下则转化为了集合,而集合的定义是:由不同元素组成的集合,故只有10个集合元素(另外2个因为重复,被去掉了)

    1.{x for x in s if x % 3 == 0}的理解和上面的列表解析list是一样的

    2.有区别的是这里因为是集合set,所以外面是{ }包起来的

    3.x % 3 == 0是指能被3整除

    3 字典dict

    再打开一个新的文件

    代码如下:

    from random import randint

    data ={x: randint(80,100) for x in range(1,9)}

    print(data)

    print({x for x in data if x >= 6})

    #python3中不再有iteritems() ,用items()代替python2中的iteritems()方法

    print({key: value for key,value in data.items() if value > 90})

    打印结果如下:

    {1: 87, 2: 82, 3: 82, 4: 95, 5: 100, 6: 86, 7: 94, 8: 100}

    {8, 6, 7}

    {8: 100, 4: 95, 5: 100, 7: 94}

    可以这么理解range(1,9)是指学号1到学号8的学生,而他们的成绩randint(80,100),是80分到100分的随机分数,x: randint(80,100)这种字典键值对可以理解为成绩表,格式为学号: 成绩

    {key: value for key,value in data.items() if value > 90}中

    1.字典里的items()方法是 返回可遍历的(键, 值) 元组数组,看个例子:

    dict = {'Sex': 'man', 'Age': 999}

    print (dict.items())

    for x in dict.items():

    print(x)

    for key,value in dict.items():

    print(key,value)

    >打印结果:

    >```

    dict_items([('Sex', 'man'), ('Age', 999)])

    ('Sex', 'man')

    ('Age', 999)

    Sex man

    Age 999

    if value > 90 筛选90分以上的成绩

    key: value 可以理解为列表解析后字典里每个元素的格式

    得到90分以上的成绩表

    参考慕课的python课程

    :)

    来个复杂的,list a=[2,3,4,5]; list b=[3,4,5,6],想要得到a,b对应位的乘积:

    [i*j for i,j in zip(a,b)]

    >除了列表解析,还需要使用zip函数来帮忙,zip将a,b对应位打包起来,返回[[2,3][3,4][4,5][5,6]]

    展开全文
  • strlist ---列表tupledic ----字典set函数- 自定义函数- 内置函数 > python提供的功能,直接调用深浅拷贝装饰器列表的特性:有序,元素可重复,字典key不可重复;1.set --无序,不重复的序列;例:list = [11,22,...

    str

    list  ---列表

    tuple

    dic   ----字典

    set

    函数

    - 自定义函数

    - 内置函数 > python提供的功能,直接调用

    深浅拷贝

    装饰器

    列表的特性:有序,元素可重复,字典key不可重复;

    1.set --无序,不重复的序列;

    例:

    list = [11,22,11,22]  --列表类型

    dic = {"k1": 123}    --字典类型

    a.创建set集合(函数)

    se = {"123","456"}  --集合类型

    print(type(set))

    list()  --类后加()小括号,就代表调用__init__方法;

    list__init__,内部执行for循环(11,22,33,44)成列表 -->  [11,22,33,44]

    s1 = {11,22}

    s2 = set()

    s3 = set([11,22,33,44])

    b.功能

    s = set() 创建一个空集合;

    把列表转换为集合:

    list = [11,22,11,22]

    s1 = set(list)

    print(s1)

    操作集合:

    s1 = set()

    s1.add(123)

    print(s1)

    s1.clear()

    print(s1)

    s2 = {121,3132,22,11}

    s1.difference(s2)

    s3 = s1.symmetric_difference(s2)

    print(s3)

    s1.discard(123)  --移除指定元素

    s1.pop()  --随机移除一个元素

    ret = s1.pop()  ---移除一个元素并将这个元素赋值给ret

    s1.update(list)  --迭代添加元素

    展开全文
  • 一、set函数 set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。 例题: 1、set函数求交集(&)、差集(-)、并集(|) s1 = set('here') s2 = set('hello') ...

    一、set函数

    set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

    例题:

    1、set函数求交集(&)、差集(-)、并集(|)

    s1 = set('here')
    s2 = set('hello')
    print(s1-s2)#差集
    print(s1&s2)#交集
    print(s1|s2)#并集
    

    结果:
    在这里插入图片描述

    2、删除元素的重复项

    (1)使用set函数

    S = {"python","apple","123","123","a"}
    print(set(S))
    

    运行结果:

    在这里插入代码片

    二、列表的操作

    (一)、列表的概念

    列表(list)是包含0个或者多个对象引用的有序序列,属于序列类型。与元组不同,列表的长度和内容都是可变的,可以对列表的内容进行增加、删除或者替换。列表没有长度限制,元素类型也可以不同,使用非常的灵活。列表中括号用[]表示,也可以通过list()函数将元组或字符串转化成列表。直接使用list()函数返回一个空列表。

    (二)、列表的操作类型

    列表是序列类型,下列将给出几种常用的函数或方法:

    函数或方法 描述
    ls[i]=x 替换列表ls第i数据项为x
    ls[i:j]=lt 用列表lt替换列表ls中i到j项数据
    ls[i:j:k]=lt 用列表lt替换列表ls中的第i到j项以k为步数的数据
    del ls[i:j] 删除列表中i到j项数据等价于ls[i:j]=[]
    del ls[i:j:k] 删除列表中i到j项以k为步数的数据
    ls+=lt或者ls.extend(lt) 将列表lt中元素增加到列表ls中
    ls*=n 更新列表ls,元素重复n次
    ls.append(x) 在列表ls中最后增加一个元素x
    ls.clear() 删除ls中的所有元素
    ls.copy() 生成一个新列表,复制ls中的所有元素
    ls.insert(i,x) 在列表ls中第i个位置增加x
    ls.pop(i) 取出列表中的第i项元素,并删除该元素
    ls.remove(x) 将列表中第一个出现的x元素删除
    ls.reverse(x) 列表中的元素反转

    代码分析:

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    list = ['apple','hello','q','ben','hello']
    # 输出列表
    print(list)
    # 替换列表中的第i项为x
    list[0]='fruit'
    print(list)
    # 用列表ls替换列表list中的第i到第j项数据
    ls=['a','h','s']
    list[0:2]=ls
    print(list)
    # 用列表ls替换列表list中的第i到j项以k为步数的数据
    list[0:2:1]=ls
    print(list)
    # 删除列表中i到j项数据等价于ls[i:j]=[]
    del list[0:2]
    # list[0:2]=[]
    print(list)
    # 在列表ls中最后增加一个元素x
    list.append('d')
    print(list)
    # 删除ls中的所有元素
    list.clear()
    print(list)
    

    运行结果:

    ['apple', 'hello', 'q', 'ben', 'hello']
    ['fruit', 'hello', 'q', 'ben', 'hello']
    ['a', 'h', 's', 'q', 'ben', 'hello']
    ['a', 'h', 's', 's', 'q', 'ben', 'hello']
    ['s', 's', 'q', 'ben', 'hello']
    ['s', 's', 'q', 'ben', 'hello', 'd']
    []
    

    课后习题及例题解答:

    1、列表ls=[2,5,7,1,6],请按照升序降序排列

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    ls = [2,5,7,1,6]
    # 升序
    ls.sort()
    s1 = sorted(ls)
    # s1 = sorted(ls,reverse=False)
    print(ls)
    print(s1)
    # 降序
    s2 = sorted(ls,reverse=True)
    print(s2)
    

    2、ls1=[1,43],ls2=ls1,ls1[0]=22,计算并思考两列表的运行结果

    ls1=[1,43]
    ls2=ls1
    ls1[0]=22
    print(ls1,ls2)
    

    3、ls=[[2,3,7],[[3,5],25],[0,9]],求len(ls)

    ls=[[2,3,7],[[3,5],25],[0,9]]
    print(len(ls))
    

    4、从lst1中去除两个列表的交集元素

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    lst1 = set('there')
    lst2 = set('hello')
    lst = lst1&lst2
    for x in lst:
        lst1.remove(x)
    print(lst1)
    

    5、把lst1=[1,2,3,4]中的奇数位与lst2=[5,6,7,8]中的偶数位,求并集

    lst1=[1,2,3,4]
    ls1 = []
    ls2 = []
    for x in lst1:
        if x%2 != 0:
            ls1.append(x)
    lst2=[5,6,7,8]
    for y in lst2:
        if y%2 == 0:
            ls2.append(y)
    S = list(set(ls1).union(set(ls2)))
    print(sorted(S))
    

    以上5题目运行结果:

    [1, 2, 5, 6, 7]
    [1, 2, 5, 6, 7]
    [7, 6, 5, 2, 1]
    [22, 43] [22, 43]
    3
    {'t', 'r'}
    [1, 3, 6, 8]
    

    6、删除列表中的重复元素

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    lst1 = ['d','df','df']
    lst2 = []
    for x in lst1:
        if x not in lst2:
            lst2.append(x)
    print(lst2)
    

    结果:
    在这里插入图片描述

    三、总结

    列表是一个十分灵活的数据结构,它具有处理任意长度、混合数据类型的能力,并提供了丰富的基础操作符和方法。

    展开全文
  • 一、set函数set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。例题:1、set函数求交集(&)、差集(-)、并集(|)s1 = set('here')s2 = set('hello')print(s1-s2)#...

    一、set函数

    set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

    例题:

    1、set函数求交集(&)、差集(-)、并集(|)

    s1 = set('here')

    s2 = set('hello')

    print(s1-s2)#差集

    print(s1&s2)#交集

    print(s1|s2)#并集

    结果:

    2、删除元素的重复项

    (1)使用set函数

    S = {"python","apple","123","123","a"}print(set(S))

    运行结果:

    二、列表的操作

    (一)、列表的概念

    列表(list)是包含0个或者多个对象引用的有序序列,属于序列类型。与元组不同,列表的长度和内容都是可变的,可以对列表的内容进行增加、删除或者替换。列表没有长度限制,元素类型也可以不同,使用非常的灵活。列表中括号用[]表示,也可以通过list()函数将元组或字符串转化成列表。直接使用list()函数返回一个空列表。

    (二)、列表的操作类型

    列表是序列类型,下列将给出几种常用的函数或方法:函数或方法描述

    ls[i]=x替换列表ls第i数据项为x

    ls[i:j]=lt用列表lt替换列表ls中i到j项数据

    ls[i:j:k]=lt用列表lt替换列表ls中的第i到j项以k为步数的数据

    del ls[i:j]删除列表中i到j项数据等价于ls[i:j]=[]

    del ls[i:j:k]删除列表中i到j项以k为步数的数据

    ls+=lt或者ls.extend(lt)将列表lt中元素增加到列表ls中

    ls*=n更新列表ls,元素重复n次

    ls.append(x)在列表ls中最后增加一个元素x

    ls.clear()删除ls中的所有元素

    ls.copy()生成一个新列表,复制ls中的所有元素

    ls.insert(i,x)在列表ls中第i个位置增加x

    ls.pop(i)取出列表中的第i项元素,并删除该元素

    ls.remove(x)将列表中第一个出现的x元素删除

    ls.reverse(x)列表中的元素反转

    代码分析:

    list = ['apple','hello','q','ben','hello']#输出列表

    print(list)#替换列表中的第i项为x

    list[0]='fruit'

    print(list)#用列表ls替换列表list中的第i到第j项数据

    ls=['a','h','s']

    list[0:2]=lsprint(list)#用列表ls替换列表list中的第i到j项以k为步数的数据

    list[0:2:1]=lsprint(list)#删除列表中i到j项数据等价于ls[i:j]=[]

    del list[0:2]#list[0:2]=[]

    print(list)#在列表ls中最后增加一个元素x

    list.append('d')print(list)#删除ls中的所有元素

    list.clear()print(list)

    运行结果:

    ['apple', 'hello', 'q', 'ben', 'hello']

    ['fruit', 'hello', 'q', 'ben', 'hello']

    ['a', 'h', 's', 'q', 'ben', 'hello']

    ['a', 'h', 's', 's', 'q', 'ben', 'hello']

    ['s', 's', 'q', 'ben', 'hello']

    ['s', 's', 'q', 'ben', 'hello', 'd']

    []

    课后习题及例题解答:

    1、列表ls=[2,5,7,1,6],请按照升序降序排列

    ls = [2,5,7,1,6]#升序

    ls.sort()

    s1=sorted(ls)#s1 = sorted(ls,reverse=False)

    print(ls)print(s1)#降序

    s2 = sorted(ls,reverse=True)print(s2)

    2、ls1=[1,43],ls2=ls1,ls1[0]=22,计算并思考两列表的运行结果

    ls1=[1,43]

    ls2=ls1

    ls1[0]=22

    print(ls1,ls2)

    3、ls=[[2,3,7],[[3,5],25],[0,9]],求len(ls)

    ls=[[2,3,7],[[3,5],25],[0,9]]print(len(ls))

    4、从lst1中去除两个列表的交集元素

    lst1 = set('there')

    lst2= set('hello')

    lst= lst1&lst2for x inlst:

    lst1.remove(x)print(lst1)

    5、把lst1=[1,2,3,4]中的奇数位与lst2=[5,6,7,8]中的偶数位,求并集

    lst1=[1,2,3,4]

    ls1=[]

    ls2=[]for x inlst1:if x%2 !=0:

    ls1.append(x)

    lst2=[5,6,7,8]for y inlst2:if y%2 ==0:

    ls2.append(y)

    S=list(set(ls1).union(set(ls2)))print(sorted(S))

    以上5题目运行结果:

    [1, 2, 5, 6, 7]

    [1, 2, 5, 6, 7]

    [7, 6, 5, 2, 1]

    [22, 43] [22, 43]3{'t', 'r'}

    [1, 3, 6, 8]

    6、删除列表中的重复元素

    lst1 = ['d','df','df']

    lst2=[]for x inlst1:if x not inlst2:

    lst2.append(x)print(lst2)

    结果:

    三、总结

    列表是一个十分灵活的数据结构,它具有处理任意长度、混合数据类型的能力,并提供了丰富的基础操作符和方法。

    展开全文
  • set集合函数主要用来去除重复:比如一个列表有多个重复值,可以用set搞掉>>> l = [1,2,3,4,5,4,3,21]>>>>>> l[1, 2, 3, 4, 5, 4, 3, 21]>>>>>>>>> set(l)set([1, 2, 3, 4, 5, 21])>>>set 可以做交集,并集,差集set...
  • https://zyu963.github.io/set,zip,map这三个函数都属于python的内置函数,有着强大的功能。语法:set(iterable)参数:iterable:一个序列或其他的可迭代的对象功能:创建一个无序不重复元素的集合 ,可进行关系...
  • python set函数,去除列表重复元素

    千次阅读 2018-01-15 10:07:38
    正如标题所说,set函数可以非常方便的将一个列表去重,例如 a = [1,2,3,4,4,2,3,31,3,3,2,4,313,1,21,21,3,3,22,2,2,2,3,3,3,4,4] b = set(a) print(a) print(b) 输出为 [1, 2, 3, 4, 4, 2, 3, 31, 3, 3,...
  • 今天小编就为大家分享一篇Python 利用内置set函数对字符串和列表进行去重的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python 利用内置set函数对字符串和列表进行去重 # coding:utf8 __author__ = 'libingxian' __date = "20170415"# 由于数据类型set本身具有无序,唯一值的特性,可以用内置函数set对字符串和列表进行去重,挺方便的 ...
  • set函数用法

    2019-05-06 19:44:01
    C++中set的用法 set的特性是,所有元素都会根据元素的键值自动排序,set的...set的各成员函数列表如下: 1. begin()--返回指向第一个元素的迭代器 2. clear()--清除所有元素 3. count()--返回某个值元素的个数 ...
  • python - set函数

    2020-05-14 06:09:33
    set函数:去除列表中多余的项 例子: example = [1,2,1] a = set(example) print(a) print(type(a)) 输出: {1, 2} <class 'set'> set函数返回的是set数据类型,而且set数据类型可迭代: for i in a: print...
  • set函数 ** set是集合,在集合中不能包含重复的元素,接收一个list作为参数 在使用set()函数对列表中元素进行去重后,列表中的元素会变成乱序。如: list1=['毛刺','切刀','切刀磨损','异物','切刀表面缺陷'] list2=...
  • python之set函数

    2016-10-13 16:14:59
    strlist ---列表tupledic ----字典set函数 - 自定义函数 - 内置函数 > python提供的功能,直接调用深浅拷贝装饰器列表的特性:有序,元素可重复,字典key不可重复;1.set --无序,不重复的序列;例:list = [11,...
  • python数据类型:列表List, Set集合序列是Python中最基本的数据结构序列中每个元素都分配一个数字,表示索引列表的数据项不需要具有相同的类型列表中的值可以重复并且有顺序的set中的数据不可以重复并且有顺序的set...
  • Python 中set函数

    2017-07-16 08:44:18
    set集合函数主要用来去除重复: 比如一个列表有多个重复值,可以用set搞掉 >>> l = [1,2,3,4,5,4,3,21] >>> ...
  • 使用set()函数列表中元素进行去重后,列表中的元素会变成乱序。如: a = ['a','b','c','d','d','c','b','a'] b = list(set(a)) print(b) 输出结果: ['a', 'c', 'b', 'd'] 若要使去重后的元素顺序跟之前一样,如...
  • ini_set用法详解PHP ini_set函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效。不是所有的选项都能被改函数设置的。具体那些值能够设置,可以查看手册中的列表。就是能够设置php.ini中的...
  • FIND_IN_SET函数

    千次阅读 2018-12-01 14:13:39
    FIND_IN_SET函数是IN函数的升级版.功能类似. 区别在于:如果是常量,则可以直接用IN, 否则要用FIND_IN_SET()函数 MySQL中原型为:FIND_IN_SET(str,strlist)。 假如字符串str 在由N 子链组成的字符串列表strlist 中...
  • list 是一个允许内容...set 是一个不允许内容重复的组合,而且set里的内容位置是随意的,所以不能用索引列出 lis = [11,12,14,12,14,12,12,16,18,28,12] d = set(lis) print(d) e = [x for x in d] print(e) ...
  • # Map会将⼀个函数映射到⼀个输⼊列表的所有元素上。# 规范 map(function_to_apply, list_of_inputs)# 常规做法:把列表中所有元素⼀个个地传递给⼀个函数,并收集输出。比如下面这样: items = [1, 2, 3, 4, 5] ...
  • find_in_set 函数的语法:FIND_IN_SET(str,strList)str 要查询的字符串strList 字段名,参数以“,”分隔,如(1,2,6,8)查询字段(strList)中包含的结果,返回结果null或记录。假如字符串str在由N个子链组成的字符串...
  • Python基础——set函数

    2020-03-28 10:29:11
    set后的列表添加元素 1.set基本用法 Set 最主要的功能就是寻找一个句子或者一个 list 当中不同的元素. list_ = ['t','h','i','s','i','s','a','l','i','s','t'] print(set(list_)) sentence = 'Today is a sunny ...
  • setdict在Python之间建立一个映射关系是一组键和一组值,以及dict的钥匙不能重复。有时候,我们只希望dict的关键,不在乎值对应的关键。目的是确保这个集合的元素将不重读。此时,设置方便。一组包含一系列元素,这非常...
  • **set函数**set是集合,在集合中不能包含重复的元素,接收一个list作为参数在使用set()函数对列表中元素进行去重后,列表中的元素会变成乱序。如:list1=['毛刺','切刀','切刀磨损','异物','切刀表面缺陷']list2=['...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,692
精华内容 1,476
关键字:

列表set函数