- Chat 6 set
- a = set([1, 2, 3, 1])
- a = {1, 2, 3, 4}
- b = {3, 4, 5, 6}
- # 创建 set
- a.union(b)
- a | b
- a.intersection(b)
- a & b
- a.difference(b)
- a - b
- a.symmetric_difference(b)
- a ^ b
- a = {1, 2, 3}
- b = {1, 2}
- b.issubset(a)
- b <= a
- a.issuperset(b)
- a>= b
- # 这里其实还有 > < 符号可以使用
相对于 list 使用 append 来添加, set 使用 add 来添加, update 来更新整个文件
- t = {1, 2, 3}
- t.add(5)
- t.update([5, 6, 7])
使用 remove 来删除某一个元素, pop 来删除最后一个元素
- t.remove(1)
- t.remove(10)
- # 如果不存在这个的话, 会报错
- t.discard(10)
- # 相比 t.remove(), t.discard() 的话不会报错
- t.pop()
下面介绍下 frozenset, 顾名思义就是不变的集合
s = frozenset([1, 2, 3, 'a', 1])
不变集合的一个主要应用是来作为字典的健
- flight_distance = {}
- city_pair = frozenset(['Los Angeles', 'New York'])
- flight_distance[city_pair] = 2498
- flight_distance[frozenset(['Austin', 'Los Angeles'])] = 1233
- flight_distance[frozenset(['Austin', 'New York'])] = 1515
- flight_distance
由于集合不分顺序, 所以不同顺序不会影响查阅结果:
- flight_distance[frozenset(['New York','Austin'])]
- flight_distance[frozenset(['Austin','New York'])]
这个也是 tuple 的区别
有些童鞋认为 tuple 也是不变的, 而我为什么需要使用 frozenset, 因为 set 不分顺序, 而 tuple 是分顺序的
Chat 7 control section
python 的控制语句都以: 结尾
python 的 tab 键代表了你是否属于这个控制语句当中
if 语句
- x = -0.5
- if x> 0:
- print "Hey!"
- print "x is positive"
- print "This is still part of the block"
- print "This isn't part of the block, and will always print."
- year = 1900
- if year % 400 == 0:
- print "This is a leap year!"
- # 两个条件都满足才执行
- elif year % 4 == 0 and year % 100 != 0:
- print "This is a leap year!"
- else:
- print "This is not a leap year."
while 语句
- plays = set(['Hamlet', 'Macbeth', 'King Lear'])
- while plays:
- play = plays.pop()
- print 'Perform', play
for 语句
- plays = set(['Hamlet', 'Macbeth', 'King Lear'])
- for play in plays:
- print 'Perform', play
- total = 0
- for i in xrange(100000):
- total += i
- print total
- # range(x) 会在做之前生成一个临时表, 这样对于效率, 内存是不好的
continue 和 break 就不介绍了吧
下面说下 else
与 if 一样, while 和 for 循环后面也可以跟着 else 语句, 不过要和 break 一起连用.
当循环正常结束时, 循环条件不满足, else 被执行;
当循环被 break 结束时, 循环条件仍然满足, else 不执行.
如下的例子
- values = [11, 12, 13, 100]
- for x in values:
- if x <= 10:
- print 'Found:', x
- break
- else:
- print 'All values greater than 10'
来源: https://www.cnblogs.com/Basasuya/p/8904237.html