精华内容
下载资源
问答
  • 1、列表可以作为集合元素吗? 2、集合可以作为列表元素吗? 3、元组可以作为集合元素吗? 4、集合可以作为元组的元素吗? 5、字典可以作为集合元素吗? 对于上面这五个问题,是不是不太懂呢?接下来我会一一...

    1、列表可以作为集合的元素吗?

    2、集合可以作为列表的元素吗?

    3、元组可以作为集合的元素吗?

    4、集合可以作为元组的元素吗?

    5、字典可以作为集合的元素吗?

    对于上面这五个问题,是不是不太懂呢?接下来我会一一解答。

    一、第一个问题:

    首先我们需要知道什么可以作为集合的元素。集合对象是一组无序排列***可哈希***的值,集合成员可以做字典中的键。那么可哈希与不可哈希是什么意思呢?

    简要的说可哈希的数据类型,即不可变的数据结构(字符串str、元组tuple、对象集objects);同理,不可哈希的数据类型,即可变的数据结构 (集合set,列表list,字典dict)

    >>> set1={[1,2,3,4],4,5,6}c
    Traceback (most recent call last):
      File "<pyshell#0>", line 1, in <module>
        set1={[1,2,3,4],4,5,6}
    TypeError: unhashable type: 'list'
    

    注:unhashable是“不可哈希的”的意思

    可见,报错了。所以列表不可以作为集合的元素.

    二、第二个问题:

    那么列表的元素可以有哪些呢?列表没有长度限制,元素类型可以不同,使用非常灵活。看例子:

    >>> list1=[{1,2,3,4},4,5,6]
    >>> list1
    [{1, 2, 3, 4}, 4, 5, 6]
    >>>
    

    说明集合可以作为列表的元素。

    三、第三个问题:

    在第一个小问中说到,元组(tuple)是不可变的数据结构(可哈希的数据类型),因此,是可以作为集合元素的。

    >>> set2={(1,2,3,4,5),6,7,8}
    >>> set2
    {8, (1, 2, 3, 4, 5), 6, 7}
    >>> 
    

    四、第四个问题:

    元组与列表类似,不同之处在于元组的元素不能修改具体用法我这里不在赘述。

    >>> tuple1=({1,2,3,4,5},89,5)
    >>> tuple1
    ({1, 2, 3, 4, 5}, 89, 5)
    >>> 
    

    所以集合可以作为元组的元素。

    五、第五个问题:

    因为字典是可变的数据结构(不可哈希),所以自然也不能作为集合的元素。

    >>> set1={{'Name': 'Runoob', 'Age': 7, 'Class': 'First'},4,5,6}
    Traceback (most recent call last):
      File "<pyshell#0>", line 1, in <module>
        set1={{'Name': 'Runoob', 'Age': 7, 'Class': 'First'},4,5,6}
    TypeError: unhashable type: 'dict'
    >>> 
    

    附上一张表:

    在这里插入图片描述
    观看顺序:ex:字符串可以作为列表的元素 列表可以作为列表的元素…

    如果有错误的地方,还请指正,大家一起学习。

    展开全文
  • &gt;&gt;&gt; set(['I', 'I', 'M', 'E']) set(['I', 'E', 'M']) 集合中,没有重复的元素。利用集合这种数据结构的特性,可以去除列表中的重复元素。 参考文献: 1. 暂缺。...
    >>> set(['I', 'I', 'M', 'E'])
    set(['I', 'E', 'M'])

    集合中,没有重复的元素。利用集合这种数据结构的特性,可以去除列表中的重复元素。

    参考文献:
    1. 暂缺。

    展开全文
  • 实现集合List中的元素进行排序

    万次阅读 多人点赞 2016-06-14 22:08:32
    有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到 Java中提供的对集合进行操作的工具类Collections,其中的sort方法 先看一个简单的例子: public static void main(String[] args) { List nums =...

     

    Collections对List集合中的数据进行排序

    有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到

     

    Java中提供的对集合进行操作的工具类Collections,其中的sort方法

     

    先看一个简单的例子:

     

    public static void main(String[] args) {
    	List<Integer> nums = new ArrayList<Integer>();
    		nums.add(3);
    		nums.add(5);
    		nums.add(1);
    		nums.add(0);
    		System.out.println(nums);
    		Collections.sort(nums);
    		System.out.println(nums);
    }

    输出结果:
    [3, 5, 1, 0]
    [0, 1, 3, 5]

     

    稍微复杂的List里面放一个复杂的对象

     

    package core.java.collection.collections;
    
    public class User implements Comparable<User>{
    	
    	private int score;
    	
    	private int age;
    	
    	public User(int score, int age){
    		super();
    		this.score = score;
    		this.age = age;
    	}
    
    	public int getScore() {
    		return score;
    	}
    
    	public void setScore(int score) {
    		this.score = score;
    	}
    
    	public int getAge() {
    		return age;
    	}
    
    	public void setAge(int age) {
    		this.age = age;
    	}
    
    	@Override
    	public int compareTo(User o) {
    		int i = this.getAge() - o.getAge();//先按照年龄排序
    		if(i == 0){
    			return this.score - o.getScore();//如果年龄相等了再用分数进行排序
    		}
    		return i;
    	}
    	
    }
    
    public static void main(String[] args) {
    		List<User> users = new ArrayList<User>();
    		users.add(new User(78, 26));
    		users.add(new User(67, 23));
    		users.add(new User(34, 56));
    		users.add(new User(55, 23));
    		Collections.sort(users);
    		for(User user : users){
    			System.out.println(user.getScore() + "," + user.getAge());
    		}
    }

    输出结果:
    55,23
    67,23
    78,26
    34,56
    我们会发现sort(List<T>)方法中List中的T必须实现Comparable<T>接口,然后实现
    compareTo()方法,该方法的返回值0代表相等,1表示大于,-1表示小于;为什么
    在简单例子中没有看到实现Comparable接口呢?是因为Integer类其实自己已经实现
    了Comparable接口,Java已经给我们做好了。

    Collections提供的第二种排序方法sort(List<T> list, Comparator<? super T> c)
    先看例子:

    package core.java.collection.collections;
    
    public class Students {
    	
    	private int age;
    	private int score;
    	
    	public Students(int age, int score){
    		super();
    		this.age = age;
    		this.score = score;
    	}
    	
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public int getScore() {
    		return score;
    	}
    	public void setScore(int score) {
    		this.score = score;
    	}
    }
    public static void main(String[] args) {
    		List<Students> students = new ArrayList<Students>();
    		students.add(new Students(23, 100));
    		students.add(new Students(27, 98));
    		students.add(new Students(29, 99));
    		students.add(new Students(29, 98));
    		students.add(new Students(22, 89));
    		Collections.sort(students, new Comparator<Students>() {
    
    			@Override
    			public int compare(Students o1, Students o2) {
    				int i = o1.getScore() - o2.getScore();
    				if(i == 0){
    					return o1.getAge() - o2.getAge();
    				}
    				return i;
    			}
    		});
    		for(Students stu : students){
    			System.out.println("score:" + stu.getScore() + ":age" + stu.getAge());
    		}
    }

    输出结果:
    score:89:age22
    score:98:age27
    score:98:age29
    score:99:age29
    score:100:age23

    从上面的例子我们可以看出Students类没有实现Comparable<T>接口,只是在sort()方法
    中多传入一个参数,只不过该参数是一个接口我们需要实现其compare方法。

    以上就是是Java中Colelctions工具类为我们提供的两种集合排序方法。

     

     

    展开全文
  • 列表中有相同元素集合合并(python实现) 问题描述:假如有一个列表列表中有许多集合集合之间可能有重复的元素,设计一个算法,将有相同元素集合进行合并。 def merge_list(L): lenth = len(L) for i in...

    将列表中有相同元素的集合合并(python实现)


    问题描述:假如有一个列表,列表中有许多集合,集合之间可能有重复的元素,设计一个算法,将有相同元素的集合进行合并。

    def merge_list(L):
        lenth = len(L)
        for i in range(1, lenth):
            for j in range(i):
                if L[i] == {0} or L[j] == {0}:
                    continue
                x = L[i].union(L[j])
                y = len(L[i]) + len(L[j])
                if len(x) < y:
                    L[i] = x
                    L[j] = {0}
    
        return [i for i in L if i != {0}]
    alist = [{'a', 'b', 'c', 'f'}, {'e', 'g'}, {1, 2, 3}, {'h', 'g', 'f'}, {5, 6, 7}, {3, 4}]
    print(merge_list(alist))
    

    上述算法时间复杂度O(n^2),最终输出结果如下:

    [{'b', 'a', 'h', 'c', 'g', 'f', 'e'}, {5, 6, 7}, {1, 2, 3, 4}]
    
    展开全文
  • 有几种方法可以列表中删除数据项。 1.1 pop方法 1.1.1 在不传递参数的情况下,默认删除最后一个。 data = [1,2,3,4,3,5,7] print(data.pop()) #将会输出末位元素:7 print(data) #输出: 1,2,3,4,3,5 ...
  • 你有一个误解,hash算法针对的是元素的内容,并不是针对指针,所以指针不变不等于可hash。如果你想深究细节的话,可以看tuple的源码:static Py_hash_ttuplehash(PyTupleObject *v){Py_uhash_t x; /* Unsigned for ...
  • 1、问题根源: text = {"a":{"aa":1,"b":2},"b":2,"c":3,"d":4,"e":5} list_dict = [{v:text[v]}...,如整数,浮点数,字符串,元组等(列表,字典,集合类型本身都是可变数据类型,不能做集合元素出现)  
  • python 列表元素集合,字典区别

    千次阅读 2017-04-08 16:38:24
    参考:http://www.cnblogs.com/xpNLP/p/4678724.html python 列表元素集合,字典区别
  • python列表--查找集合中重复元素的个数
  • [size=medium][b]Problem[/b][/size] [color=red][b]你想要筛选出集合中的一些元素形成一个新的集合,...“选择一个集合方法来解决问题”,大量的方法可以被用来过滤输入集合元素然后生成新的集合。[color=blu...
  • list集合添加元素,删除元素

    千次阅读 2018-03-26 14:33:37
    使用迭代器遍历删除时,会报异常: ConcurrentModificationException原因:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常解决方案:将要删除元素放入另一个delList集合中,最后元素遍历完成后,使用...
  • JAVA中ArrayList之筛选集合元素

    千次阅读 2019-10-26 11:51:00
    用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中。 要求使用自定义的方法来实现筛选。 分析: 1.需要创建一个集合,用来存储int数字: 2.随机数字用Random nextInt 3.循环20次,把随机数字放...
  • python set()集合会自动排序 a=['v','a'] b=['a','v'] same_values = set(a) & set(b) print(same_values) 结果:输出的是两个列表相同的元素 如果你想比较两个列表内的元素是否完全相同: a=['v','a'] b=['a'...
  • 【Python】第7次练习:组合数据类型——列表元素的积,重复元素判定A,编辑求集合的最大值和最小值,大多数元素A 1、列表元素的积 题目:一个由n(n>1)个数字组成的列表 ls,输出一个列表lt,其中lt中第i个元素...
  • 原文地址: redis有序集合性能 列表集合、有序集合 1.1 列表 ...在redis中,可以列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定所有下标的元素等.  列表类型有两个特点
  • Mybatis中返回集合元素

    千次阅读 2019-08-19 21:21:03
    在.xml的前提下我们select的时候需要指定返回值一般用resultType(当然可以用ResultMap自定义)指定返回值的类型,然后Mybatis会将对应的值封装进去 类似于这样: <select id="listUser" resultType=...
  • Java 获取集合元素的值

    千次阅读 2020-04-10 12:56:53
    遍历从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型的集合,我们分别使用了普通for,增强型的 for ,iterator 等方式来遍历集合 完整代码 import java.util.ArrayList; import java.util.HashSet;...
  • 基本类型需要自动装箱) 查看List(列表):元素有序,元素可以重复 (有索引)。 通过元素的equals()方法判断是否重复。 查看Set(集):元素无序,不可重复 (没有索引)ArrayList(数组列表): 查询快,增删慢。 查看LinkedList...
  • 集合类型要求元素是独一无二的,不能存在相同的元素,但是如果其中的某一个元素可以被改变的,它一旦改变之后可能会和其他的元素相同,这样子的话集合类型就会出现错误,所以集合类型要求,该元素不能是可变数据...
  • Python之集合set添加元素

    万次阅读 2019-08-07 12:56:47
    集合是无序的,不重复的数据集合,它里面的元素是可哈希的,但是集合本身是不可哈希,因为__hash__赋值为了None,(所以集合做不了字典的键)的。 1、所谓无序,是指遍历元素的时候,与你插入元素、访问元素(访问...
  • 1简单元素的查找一、找到2个集合中相同和不同的元素本文分享的示例代码实现提取2个集合中相同和不同的元素此处需要使用Collection集合所提供的一个方法:removeAll(Cellection list),removeAll方法用于从列表中移除...
  • java 访问集合元素的方法

    千次阅读 2017-03-24 11:43:26
    一、取得集合的长度,通过for循环访问 int size = courseList.size(); for(int i=0; i; i++){ Course course = (Course)courseList.get(i); System.out.println(course.name); } 二、通过迭代器Iterator来访问 ...
  • 第1章 List接口我们掌握了Collection接口的使用后,再来看看Collection接口中的子类,他们都具备那些特性呢?...此接口的用户可以列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在...
  • 文章目录列表列表更新元素列表增加元素列表删除元素列表的其他操作元组删除元组元组的其他操作字典字典删除元素字典的其他操作集合集合添加元素集合删除元素其他操作 列表 创建一个列表,只要把逗号分隔的不同的数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 389,627
精华内容 155,850
关键字:

列表可以做集合的元素