python学习拾遗(二)——元组、字典、集合


元组使用圆括号,且元组中的元素不能修改。元组中的元素也可以不同。

元组运算符

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的异或运算
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值