星海's Blog

老头初学编程
Python学习笔记(2)
C未解决的问题

Python学习笔记(三)

星海 posted @ 2010年10月06日 06:32 in Python学习 , 1424 阅读

a_set = set()

由于从 Python 2 沿袭而来历史的古怪规定,不能使用两个花括号来创建空集合。该操作实际创建一个空字典,而不是一个空集合。

 

有两种方法可向现有集合中添加值: add() 方法和 update() 方法。

>>> a_set
{1, 2, 4}

>>> a_set.add(1)
>>> a_set
{1, 2, 4}
#集合是装 唯一值 的袋子。如果试图添加一个集合中已有的值,将不会发生任何事情。将不会引发一个错误;只是一条空操作。
>>> a_set.update([10, 20, 30]) 
>>> a_set
{1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 20, 30}


有三种方法可以用来从集合中删除某个值。前两种,discard()remove() 有细微的差异。

   
  如果针对一个集合中不存在的值调用 discard() 方法,它不进行任何操作。不产生错误;只是一条空指令。
 

区别在这里:如果该值不在集合中,remove() 方法引发一个 KeyError 例外。

试图从空集合中.pop()弹出某值将会引发 KeyError 例外。

					>>> a_set = {2, 4, 5, 9, 12, 21, 30, 51, 76, 127, 195}
>>> 30 in a_set                                                     
True
>>> 31 in a_set
False
>>> b_set = {1, 2, 3, 5, 6, 8, 9, 12, 15, 17, 18, 21}
>>> a_set.union(b_set)                                              
{1, 2, 195, 4, 5, 6, 8, 12, 76, 15, 17, 18, 3, 21, 30, 51, 9, 127}
>>> a_set.intersection(b_set)                                       
{9, 2, 12, 5, 21}
>>> a_set.difference(b_set)                                         
{195, 4, 76, 51, 30, 127}
>>> a_set.symmetric_difference(b_set)                               
{1, 3, 4, 6, 8, 76, 15, 17, 18, 195, 127, 30, 51}
要检测某值是否是集合的成员,可使用 in 运算符。其工作原理和列表的一样。
union() 方法返回一个新集合,其中装着 在两个 集合中出现的元素。
intersection() 方法返回一个新集合,其中装着 同时 在两个集合中出现的所有元素。
difference() 方法返回的新集合中,装着所有在 a_set 出现但未在 b_set 中的元素。

symmetric_difference() 方法返回一个新集合,其中装着所有 只在其中一个 集合中出现的元素。

 

os.path.split分割一个完整路径并返回目录和文件名。

os.path 也包含os.path.splitext() 函数,它分割一个文件名并返回短文件名和扩展名。可以使用同样的技术将它们的值赋值给不同的变量。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter