元组使用圆括号,且元组中的元素不能修改。元组中的元素也可以不同。
元组运算符
python元组的操作符
Python表达式 | 描述 | 结果 |
---|---|---|
len((1,2,3)) | 计算元素个数 | 3 |
(1,2,3)+(4,5,6) | 连接 | (1,2,3,4,5,6) |
(‘a’,‘b’)*4 | 复制 | (‘a’,‘b’,‘a’,‘b’,‘a’,‘b’,‘a’,‘b’) |
3 in (1,2,3) | 元素是否存在 | True |
for x in (1,2,3):print(x,end=" ") | 遍历元组 | 1 2 3 |
python元组的内置函数
方法 | 描述 |
---|---|
len(tuple) | 计算元组元素个数 |
max(tuple) | 返回元组中元素最大值 |
min(tuple) | 返回元组中元素最小值 |
tuple(seq) | 将列表转换为元组 |
可以使用元组来一次性对多个变量赋值:
(x, y, z) = (1, 2, 3)
print(x, y, z)
如下代码可以实现x,y实现:
x, y = y, x
print(x, y)
元组与列表转换
可以使用下面方法将元组转换为列表:
列表对象=list(元组对象)
可以使用下面方法将列表转换为元组:
列表对象=tuple(列表对象)
将列表转换为字符串:
nums = [1, 3, 5, 7, 8, 13, 20]
str1 = str(nums) # 列表转为字符串,返回含方括号及逗号的的字符串
print(str1[2]) # 打印出逗号,因为字符串中索引号2的元素是逗号
num2 = ['中国', '美国', '日本', '加拿大']
str2 = "%"
str2 = str2.join(num2) # 用百分号连接起来的字符串——’中国%美国%日本%加拿大‘
print(str2)
str2 = ""
str2 = str2.join(num2) # 用空字符连接起来的字符串——’中国美国日本加拿大‘
print(str2)
字典
字典是一种可变容器模型。且可存储任意类型对象,字典也可称为关联数组或哈希表。
注意:键必须是唯一的,但值则不必。值可以取任意数据类型,但键必须是不可变的,如:字符串、数字、元组,但不能是列表(动态数据类型)。
字典特性
(1)字典值可以是任意python对象,如:字符串、数字、元组等。
(2)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会覆盖前面的值。
dict = {'Name': 'xmj', 'Age': 17, 'Name': 'Manni'}
print("dict['Name']:", dict['Name'])
(3)键必须是不可变的,所以可以用数字、字符串或元组充当,用列表就不行。
修改字典
向字典添加新内容的方法是增加新的键值/对、修改或删除已有键/值对。
dict = {'Name': '王海', 'Age': 17, 'Class': '计算机一班'}
dict['Age'] = 18 # 更新键值对
dict['School'] = "中原工学院" # 增加新的键值对
print("dict['School']:", dict['School'])
删除字典元素
dict = {'Name': '王海', 'Age': 17, 'Class': '计算机一班'}
del dict['Name']
print(dict)
dict.clear() # 清空词典所有元素
print(dict)
del dict # 删除词典,用del后字典不再存在
print(dict)
in 运算
字典里的in 运算用于判断某键是否在字典里,对于value值不适用。功能与has_key(key)方法相似。
dict = {'Name': '王海', 'Age': 17, 'Class': '计算机一班'}
print('Age' in dict)
print(dict.has_key('Age')) # 这种方法已经被淘汰,请使用上面的方法
获取字典中的所有值
value方法以列表返回字典中的所有值
dict = {'Name': '王海', 'Age': 17, 'Class': '计算机一班'}
a = dict.values()
print(a)
items()方法
items()方法把字典中每对key和value组成一个元祖,并把这些元祖放在列表中返回。
a = dict.values()
print(a)
for key, value in dict.items():
print(key, value)
注意,字典打印出来对的顺序与创建之初的顺序不同。字典中各个元素并没有顺序之分(因为不需要通过索引号查找元素),因此存储元素时,进行了优化使字典的存储和查询效率最高。这也是字典和列表的另一个区别:列表保持元素的相对关系,即序列关系;而字典是完全无序的,也称为非序列。如果想保持一个集合中元素的顺序,需要使用列表而不是字典。
字典方法和内置函数
函数 | 函数描述 |
---|---|
dict1.clear() | 删除字典内所有元素 |
dict1.copy() | 返回一个字典副本 |
dict1.fromkeys(seq,value) | 创建一个新字典,以序列seq中的元素作为字典的键,value为字典所有键对应的初始值 |
dict1.get(key,default=None) | 返回指定键的值,如果值不在字典中则返回default值 |
dict1.items() | 以列表返回可遍历的(键、值)元组数组 |
dict1.keys() | 以列表返回一个字典所有的键 |
dict1.setdefault(key,default=None) | 和get()类似,但如果键不存在于字典中,将会添加键并将值设为default |
dict1.update(dict2) | 把字典dict2的键对更新到dict1里 |
dict1.values() | 以列表返回字典中的所有值 |
cmp(dict1,dict2) | 内置函数,比较两个字典元素 |
len(dict) | 内置函数,计算字典元素个数,即键的总数 |
str(dict) | 内置函数,输出字典可打印的字符串表示 |
type(variable) | 内置函数,返回输入的变量类型,如果变量是字典则返回字典类型 |
集合
创建集合
可以使用花括号{}或者set()函数创建集合。注意,创建一个空集合必须要用set()而不是花括号。因为花括号用来创建一个字典。
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'} # 在输出集合时,重复的元素会被自动去掉
print(student)
成员测试
if 'Rose' in student:
print('Rose 在集合中')
else:
print('Rose 不在集合中')
集合运算
a = set('abcd')
b = set('cdef')
print(a)
print("a和b的差集:", a - b) # a和b的差集(差运算)
print("a和b的并集:", a | b) # a和b的并集(或运算)
print("a和b的焦急:", a & b) # a和b的交集(与运算)
print("a和b中不同时存在的元素:", a ^ b) # a和b的异或运算