30天学会 Python: Day 5-集合啦? Python 友会

今天要补完剩下的三种容器

元组(Tuple)

和串列一样,元可以重复且有序,但元组一旦建立就无法修改,所以没有增加、删除元的方法

元组可以用小括号 () 建立

myTuple=(1, 3, 4, 5, 64)
print("第一项:", myTuple[0])

元组的方法

count(x)

回传元组中有几个元的值和 x 相同

myTuple = [1, 22, 22, 22, 4, 3, 3]
print(myTuple.count(0))
print(myTuple.count(3))
print(myTuple.count(22))

集合(Set)

集合的元可以任意增加或删除,但无序所以不能用索引取得其中的元
和数学中的集合一样,集合中的元没有重复

空的集合可以用 set() 建立

mySet = set()
print(mySet)

指派元要用大括号标示(空集合不能用 {})

mySet = {1, 3, 4, 5, 64}
print(mySet)

重复的元会被自动删除

mySet = {1, 3, 3, 64, 64}
print(mySet)

集合的常用方法

clear()/remove(x)

效果和对串列时一样

mySet={1, 3, 4, 5, 64}
mySet.remove(5)
print(mySet)
mySet.clear()
print(mySet)

discard(x)

remove() 一样,会将 x 从集合中移除,但如果 x 不在集合中,用 remove() 会产生语法错误,discard(x) 则不会

mySet={1, 3, 4, 5, 64}
mySet.discard(6)
print(mySet)
mySet.discard(4)
print(mySet)

pop()

随机 删除一个元

mySet={1, 3, 4, 5, 64}
mySet.pop()
print(mySet)

add(x)

x 加入集合中

mySet={1, 3, 4, 5, 64}
mySet.add(18)
print(mySet)

A.union(B)

回传一个集合,内容是所有在 A B 的元,也就是 AB 的联集(A, B 不会变)
![](https://upload.wikimedia.org/wikipedia/commons/thumb/0/06/Set_union.png/440px-Set_union.png =400x)

a={1,2,3}
b={3,4,5}
print(a.union(b))
print(a, b)

A.update(B)

B 中的内容加入 A,也就是加入 BA 没有的值
A变成两者的联集

a={1,2,3}
b={3,4,5}
a.union(b)
print(a, b)

A.intersection(B)

回传一个集合,内容是所有在 A B 的元,也就是 AB交集(A, B 不会变)
![](https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Set_intersection.png/440px-Set_intersection.png =400x)

a={1,2,3,4}
b={3,4,5,6}
print(a.intersection(b))
print(a, b)

A.intersection_update(B)

A 中删除 B 里没有的元,所以 A变成两者的 交集

a={1,2,3,4}
b={3,4,5,6}
a.intersection_update(b)
print(a, b)

A.difference(B)

回传一个集合,包含 A 之中有,但 B 没有的元,也就是 BA 的 差集

![](https://i.imgur.com/fkD1bz3.png =400x)

a={1,2,3,4}
b={3,4,5,6}
print(a.difference(b))
print(a, b)

A.difference_update(B)

A 中删除 B 里没有的元,所以 A变成两者的 交集

a={1,2,3,4}
b={3,4,5,6}
a.difference_update(b)
print(a, b)

容器可用的函式

以上的三种容器(list, tuple, set)都可以作为 len(), sum(), max(), min() 的引数

字典(Dict)

字典中的每一笔资料都有一个键(Key),资料的内容称为值(Value),一对键和值称为 Item
键是一个字串,就像是 item 的名字,必须要透过键才能从字典中取得此 item 的值

字典可以用大括号建立,语法是 <key>:<value>,每个 item 间用逗号分隔

student={
	'name': 'Jay',
	'age': 18,
	'single': True 
}

print(student['name'], student['age'], student['single'])

新增 item

在中括号中加上新的 item 的键,用等号指派键值

student={
	'name': 'Jay',
	'age': 18,
	'single': True 
}
print(student)

student['height']=169
print(student)

字典的常用方法

clear()

清除内容

student={
	'name': 'Jay',
	'age': 18,
	'single': True 
}
student.clear()

print(student)

get(key)

虽然可以用中括号取得值,但如果键不存在字典中,会造成语法错误,所以不确定键是否存在时要用 get()
get() 回传键是 key 的值,若不存在则回传 None

student={
	'name': 'Jay',
	'age': 18,
	'single': True 
}

print(student.get('name'))
print(student.get('height'))

keys()

取得字典中所有的键

student={
	'name': 'Jay',
	'age': 18,
	'single': True 
}

print(student.keys())

values()

取得字典中所有的值

student={
	'name': 'Jay',
	'age': 18,
	'single': True 
}

print(student.values())

update(item)

item 插入字典,但键值不能重复

student={
	'name': 'Jay',
	'age': 18,
	'single': True 
}

student.update({'height':169})
print(student)

pop(key)

将键为 key 的 item 移除,key 必须存在字典中

student={
	'name': 'Jay',
	'age': 18,
	'single': True 
}

student.pop('name')
print(student)


挖坑清单:

  • 空字串的用途

<<:  Day 6 python集合

>>:  JavaScript入门 Day16_阵列2

Day3

做好学习程序语言这件事,可以说已经成为了全民运动。在人类的历史中,我们总是尽了一切努力想搞懂学习程序...

Day22_CSS语法5

font-style属性设定HTML元素的文字样式 normal : 正常(预设值) italic ...

[Day5] POSTMAN及取得Nonce值

这节向大家介绍一个好用的测试工具 - Postman。 Postman可以模拟程序呼叫API的行为,...

Day2. Ruby 的基本介绍 - 让大家认识并爱上Ruby

Ruby on Rails为用Ruby程序语言写的开源网页框架,Rails的发明者DHH挑选了Rub...

Day29 - 日期、转换函数

若你是使用 ORM ( Object Relational Mapping ) 来操作资料库的话,那...