Python之集合

来源:互联网 发布:天正建筑t20 mac 编辑:程序博客网 时间:2024/06/15 13:38
创建
用集合的工厂方法set()和frozenset()
>>> s = set('cheeseshop')>>> sset(['c', 'e', 'h', 'o', 'p', 's'])>>> t = frozenset('bookshop')>>> tfrozenset(['b', 'h', 'k', 'o', 'p', 's'])>>> len(s) == len(t)True>>> s == tFalse


更新集合

<pre name="code" class="python">>>> s.add('z')>>> sset(['c', 'e', 'h', 'o', 'p', 's', 'z'])>>> s.update('pypi')>>> sset(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z'])>>> s.remove('z')>>> sset(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])>>> s -= set('pypi')>>> sset(['c', 'e', 'h', 'o', 's'])>>> t .add('z')                      #只有可变集合能被修改Traceback (most recent call last):  File "<pyshell#14>", line 1, in <module>    t .add('z')                      #只有可变集合能被修改AttributeError: 'frozenset' object has no attribute 'add'



集合类型内建方法
s.issubset(t):s是t的子集,返回True,否则返回Fals e
s.union(t):返回一个新集合,该集合是s和t的交集
s.intersection(t):返回一个s和t并集的新集合
s.difference(t):返回一个新集合,该集合是s的成员,但不是t的成员
s.symmetric_difference(t):返回一个新集合,该集合是s或t的成员,但不是s和t共有的成员
(以下仅适用于可变集合)
s.update(t):用t中元素修改s
s.intersection_update(t):s中的成员共同属于s和t
s.add(obj):向集合s中添加对象
s.remove(obj):从集合s中删除对象
s.pop():删除集合s中的任意一个对象,并返回它


计算文件单词个数
f = open('xxx.xx','r')len([word for line in f for word in line.split()])


快速计算文件大小
import osos.stat('xxx.xx').st_size


计算非空字符数

f.seek(0)sum([len(word) for line in f for word in line.split()])











0 0