- dict字典
a. 定义
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:
dict = {‘Alice’: ‘2341’, ‘Beth’: ‘9102’, ‘Cecil’: ‘3258’}
b. 创建
dict = {}
c. 字典的方法
修改字典
dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Class’: ‘First’}
dict[‘Age’] = 8; # 更新 Age
dict[‘School’] = “菜鸟教程” # 添加信息
print ("dict[‘Age’]: ", dict[‘Age’])
print ("dict[‘School’]: ", dict[‘School’])
删除字典元素
dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Class’: ‘First’}
del dict[‘Name’] # 删除键 ‘Name’
dict.clear() # 清空字典
del dict # 删除字典
print ("dict[‘Age’]: ", dict[‘Age’])
print ("dict[‘School’]: ", dict[‘School’])
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Name’: ‘小菜鸟’}
print ("dict[‘Name’]: ", dict[‘Name’])
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
dict = {[‘Name’]: ‘Runoob’, ‘Age’: 7}
print ("dict[‘Name’]: ", dict[‘Name’])
字典内置函数&方法
Python字典包含了以下内置方法:
序号 函数及描述
1 radiansdict.clear()
删除字典内所有元素
2 radiansdict.copy()
返回一个字典的浅复制
3 radiansdict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4 radiansdict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
5 key in dict
如果键在字典dict里返回true,否则返回false
6 radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组
7 radiansdict.keys()
返回一个迭代器,可以使用 list() 来转换为列表
8 radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9 radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里
10 radiansdict.values()
返回一个迭代器,可以使用 list() 来转换为列表
11 pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12 popitem()
随机返回并删除字典中的一对键和值(一般删除末尾对)。
- 集合
a… 特性
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
b 创建
parame = {value01,value02,…}
或者
set(value)
c. 方法
1、添加元素
s.add( x )
thisset = set((“Google”, “Runoob”, “Taobao”))
thisset.add(“Facebook”)
print(thisset)
{‘Taobao’, ‘Facebook’, ‘Google’, ‘Runoob’}
s.update( x )
thisset = set((“Google”, “Runoob”, “Taobao”))
thisset.update({1,3})
print(thisset)
{1, 3, ‘Google’, ‘Taobao’, ‘Runoob’}thisset.update([1,4],[5,6])
print(thisset)
{1, 3, 4, 5, 6, ‘Google’, ‘Taobao’, ‘Runoob’}
2、移除元素
s.remove( x )
thisset = set((“Google”, “Runoob”, “Taobao”))
thisset.remove(“Taobao”)
print(thisset)
{‘Google’, ‘Runoob’}thisset.remove(“Facebook”) # 不存在会发生错误
Traceback (most recent call last):
File “”, line 1, in
KeyError: ‘Facebook’
s.discard( x )
thisset = set((“Google”, “Runoob”, “Taobao”))
thisset.discard(“Facebook”) # 不存在不会发生错误
print(thisset)
{‘Taobao’, ‘Google’, ‘Runoob’}
s.pop()
thisset = set((“Google”, “Runoob”, “Taobao”, “Facebook”))
x = thisset.pop()
print(x)
3、计算集合元素个数
len(s)
thisset = set((“Google”, “Runoob”, “Taobao”))
len(thisset)
3
4、清空集合
s.clear()
thisset = set((“Google”, “Runoob”, “Taobao”))
thisset.clear()
print(thisset)
set()
5、判断元素是否在集合中存在
x in s
thisset = set((“Google”, “Runoob”, “Taobao”))
“Runoob” in thisset
True“Facebook” in thisset
False
集合内置方法完整列表
方法 描述
add() 为集合添加元素
clear() 移除集合中的所有元素
copy() 拷贝一个集合
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合也存在。
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 删除集合中的元素,该元素在指定的集合中不存在。
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset() 判断指定集合是否为该方法参数集合的子集。
issuperset() 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove() 移除指定元素
symmetric_difference() 返回两个集合中不重复的元素集合。
symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union() 返回两个集合的并集
update() 给集合添加元素
- 判断语句(要求掌握多条件判断)
if…else
if …elif…elif…elseage = int(input(“请输入你家狗狗的年龄: “))
print(””)
if age < 0:
print(“你是在逗我吧!”)
elif age == 1:
print(“相当于 14 岁的人。”)
elif age == 2:
print(“相当于 22 岁的人。”)
elif age > 2:
human = 22 + (age -2)*5
print("对应人类年龄: ", human)
- 三目表达式
.条件为真时的结果 if 判段的条件 else 条件为假时的结果
x = int(input(“please enter first integer:”))
2 y = int(input(“please enter second integer:”))
3
4 #一般的写法
5 if (x == y):
6 print(“两数相同!”)
7 elif(x > y):
8 print(“较大的数为:”,x)
9 else:
10 print(“较大的数为:”,y)
11
12 # 三目运算符写法
13 print(x if(x>y) else y) - 循环语句
while 判断条件:
语句
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print(“1 到 %d 之和为: %d” % (n,sum))
while 循环使用 else 语句
在 while … else 在条件语句为 false 时执行 else 的语句块:
count = 0
while count < 5:
print (count, " 小于 5")
count = count + 1
else:
print (count, " 大于或等于 5")
for in :
else:
for in :
else: