• python中的set函数、列表的操作


    一、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]=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],请按照升序降序排列

    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&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、删除列表中的重复元素

    lst1 = ['d','df','df']
    lst2 = []
    for x in lst1:
        if x not in lst2:
            lst2.append(x)
    print(lst2)

    结果:

    三、总结

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

  • 相关阅读:
    去 抚仙湖 和 去 洱海 差不多
    开源项目 D++
    未来 的 科学家, 不仅 是 数学家, 也是 系统设计 大师
    出一道 智商题 : 证明 永动机 是否 能 设计出来 ?
    评论一下 “推倒数学大厦”的 一个 作业题
    用 无穷级数 的 思路 三等分角
    三等分角 化圆为方 可以 考虑 用 无穷级数 的 方式 来 实现
    CPU 应该 搞 0 级 Cache , 而不是 大寄存器
    关于 智商 (2)
    关于 智商
  • 原文地址:https://www.cnblogs.com/CJR-QYF/p/11738277.html
Copyright © 2020-2023  润新知