Chat 6 set while 語句 for 語句 continue和break就不介紹了吧 下麵說下else 與 一樣, 和 迴圈後面也可以跟著 語句,不過要和 一起連用。 當迴圈正常結束時,迴圈條件不滿足, 被執行; 當迴圈被 結束時,迴圈條件仍然滿足, 不執行。 如下的例子 python v ...
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'