标签: 集合

  • python集合元素的删除

    在Python中,集合(set)是一个无序的数据结构,它不保持元素的插入顺序。因此,当你print一个集合时,元素的输出顺序可能看起来是随机的,实际上这个顺序是由集合内部的哈希表决定的。

    attendees = {'Alice Smith', 'Bob Jones', 'Carol', 'David'}
    print(attendees)
    

    它输出的结果可能有点出人意料。

    展开/折叠结果 >>> print(attendees)
    {'Carol', 'Alice Smith', 'Bob Jones', 'David'}

    这体现了集合的无序性,如果我们想从中删除元素,比较适合和安全的方法是写一个函数。

    def remove_attendees_with_first_name(attendees, name):   # 定义一个函数
        to_remove = set()   # 新建一个空集合
        for att in attendees:   # for循环,循环attendees的每一个元素
            if att.startswith(name):   # 检查每一个元素,是否是以给定的name变量开头
                to_remove.add(att)   # 如果是,把该元素放入新建的集合
        for remove in to_remove:   # 第二个for循环,遍历新建的集合
            attendees.discard(remove)   # 从attendees集合中移除to_remove集合中的每一个元素
    remove_attendees_with_first_name(attendees, 'Bob')   # 我们移除Bob开头的元素
    print(attendees)  # 输出将不包含 'Bob Jones'
    
    展开/折叠结果 >>> remove_attendees_with_first_name(attendees, 'Bob')
    >>> print(attendees) # 输出将不包含 'Bob Jones'
    {'Carol', 'Alice Smith', 'David'}
  • python的集合

    集合,也是一个把一大堆内容放在一起的功能。

    a_set = {"张三", "李四", "王五", "这六"}
    print(a_set)
    
    a_set.add('那七')
    print(a_set)
    
    a_set.remove('李四')
    print(a_set)
    
    if '张三' in a_set:
        print('张三在集合中。')
    else:
        print('张三不再在集合中。')
    
    展开/折叠结果 {'王五', '张三', '李四', '这六'}
    {'张三', '这六', '李四', '王五', '那七'}
    {'张三', '这六', '王五', '那七'}
    张三在集合中。