WEB开发网
开发学院软件开发C语言 从C#到Python:1 变量和数据类型 阅读

从C#到Python:1 变量和数据类型

 2010-09-30 22:36:50 来源:WEB开发网   
核心提示: 如果在set中传入重复元素,集合会自动将其合并,从C#到Python:1 变量和数据类型(9),这个特性非常有用,比如去除列表里大量的重复元素,关于Python中dict类型(以及list、tuple、set)提供的主要方法,可以参考专门介绍Python的各种书籍,用set解决效率很高,示例如下

如果在set中传入重复元素,集合会自动将其合并。这个特性非常有用,比如去除列表里大量的重复元素,用set解决效率很高,示例如下:

1 # -*- coding: utf-8 -*-
2  a = [11,22,33,44,11,22,11,11,22,22,33,33,33]
3 b = set(a)
4  print b
5  #输出 set([33, 11, 44, 22])

另一个例子,找出两个list里面相同的元素(集合求交,其它类推),代码如下:

1 # -*- coding: utf-8 -*-
2  a = ["11","22","33"]
3 b = ["11","33"]
4 c = set(a)&set(b)
5  print c
6  #输出 set(['11', '33'])

想想你如果自己实现这个算法会怎么写?然后可以找两个大一点的列表,比比和set实现的效率,你就会有体会了。以后在程序里多用set吧。

目前C#的Collections中好像还没有Set,但是C++ STL里是有的,不知道C#为什么不实现这个有趣的东西。

1.3.3  字典(dict)

用过C#中Collections的人对Hashtable应该不会陌生,Python里的哈希表就是字典(dict)了。与set类似,字典是一种无序存储结构,它包括关键字(key)和关键字对应的值(value)。

C#程序员需要了解的就是,在Python中dict是一种内置的数据类型,定义方式为:dictionary = {key:value},当有多个键值对时,使用逗号进行分割。

字典里的关键字为不可变类型,如字符串、整数、只包含不可变对象的元组,列表等不能作为关键字。字典中一个键只能与一个值关联,对于同一个键,后添加的值会覆盖之前的值。

学过数据结构的人对字典的散列查找效率应该都有认识,所以我建议在可能的情况下尽量多用字典,其它的就不多写了。关于Python中dict类型(以及list、tuple、set)提供的主要方法,可以参考专门介绍Python的各种书籍,大多会提供一个详细的方法列表。

上一页  4 5 6 7 8 9 10  下一页

Tags:Python 变量 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接