Python Day3 —— 元组、字典、集合

目录

一、元组

1.格式

2.查找(元组只支持查找操作)

2.1按下标查找数据

2.2index()

2.3count

2.4len

3.元组中数据的修改

二、字典

1.格式

2.增/改

3.删

3.1del() / del

3.2clear()

4.查

4.1key值查找

4.2函数

5.字典的循环遍历

5.1遍历字典的key

5.2遍历字典的value

5.3遍历字典的元素(键值对)

5.4遍历字典的键值对(拆包)

三、集合

1.格式

2.增加数据

2.1add()

2.2update

3.删除数据

3.1remove

3.2discard()

3.3pop()

4.查找数据(in / not in)


一、元组

可以一次存储多个数据,尽可能保证是相同类型

数据不能更改

1.格式

(数据1, 数据2, 数据3,......)

  • 多个数据的元组

        t1 = (10, 20, 30)

  • 单个数据的元组

        t2 = (10, )

        → 如果定义的元组只有一个数据,其后也要加逗号,否则t2数据类型为此单个数据的数据类型

t = (10, )
print(type(t)) # <class 'tuple'>

t = (10)
print(type(t)) # <class 'int'>

t = ('hi', )
print(type(t)) # <class 'tuple'>

t = ('hi')
print(type(t)) # <class 'str'>

2.查找(元组只支持查找操作)

2.1按下标查找数据

tuple = ('a', 'b', 'c', 'd')
print(tuple[0]) # a

2.2index()

查找某个数据,如果数据存在返回对应的下标,否则报错。

tuple = ('a', 'b', 'c', 'd')
print(tuple.index('a')) # 0
print(tuple.index('aa')) # 报错

2.3count

统计某个数据在当前元组出现次数

tuple = ('a', 'a', 'b', 'c', 'd')
print(tuple.count('a')) # 2

2.4len

统计元组中数据个数(元组长度)

tuple = ('a', 'a', 'b', 'c', 'd')
print(len(tuple)) # 5

3.元组中数据的修改

如果元组中有列表,可以修改列表中的数据

tuple1 = (1, 2, [3, 4, 5], 6)
tuple1[2][0] = 2
print(tuple1) # (1, 2, [2, 4, 5], 6)

二、字典

字典中的数据都以键值对(key)的形式出现,字典数据和数据顺序无关,即字典不支持下标,只需要按照对应键的名字查找数据即可

数据可以修改

1.格式

  • 大括号
  • 以键值对形式存在
  • 各键值对间用逗号隔开
# 有数据字典
dict1 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict)

# 空字典
dict2 = {}
# 或
dict3 = dict()# 用dict函数

2.增/改

语法

字典序列名[key] = 值

        注:如果key存在则修改这个key对应的值,若不存在则新增键值对

dict1 = {'name': 'Mike', 'gender': 'man', 'age': 18}
dict1['name'] = 'Lucy' # 改
dict1['gender'] = 'woman' # 改
dict1['age'] = 20 # 改
dict1['qualification'] = 'undergraduate' # 增
print(dict1) # {'name': 'Lucy', 'gender': 'woman', 'age': 20, 'qualification': 'undergraduate'}

3.删

3.1del() / del

删除字典或删除字典中指定键值对

dict1 = {'name': 'Mike', 'gender': 'man', 'age': 18}
del dict1['age']
print(dict1) # {'name': 'Lucy', 'gender': 'woman'}

若未查找到指定键值对,则报错

3.2clear()

清空字典

4.查

4.1key值查找

 存在则返回数据,不存在报错

dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0['name'])
print(dict0['id'])

4.2函数

  • get()  

查找目标可替代对象当前对应的值

        语法

        字典序列名.get(key,默认值)

dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0.get('name')) # Mike
print(dict0.get('id', 'Tom')) # Tom
print(dict0.get('id')) # None

注:如果当前查找的key不存在则返回默认值,若省略第二个参数,则返回None

  • keys()

查找字典中所有可替代对象(key),并返回

dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0.keys()) # dict_keys(['name', 'gender', 'age'])
  • values()

查找字典中所有可替代对象(key)当前对应值,并返回

dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0.values()) # dict_values(['Mike', 'man', 18])
  • items()

查找字典中所有键值对,并返回,其中的数据是元组,元组数据1是key,元组数据2是key对应的值

dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0.items()) # dict_items([('name', 'Mike'), ('gender', 'man'), ('age', 18)])

5.字典的循环遍历

5.1遍历字典的key

dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
# 返回所有key值
'''
name
gender
age
'''
for key in dict0.keys():
    print(key)

5.2遍历字典的value

dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
# 返回所有key当前对应的值
'''
Mike
man
18
'''
for value in dict0.values():
    print(value)

5.3遍历字典的元素(键值对)

dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
# 返回所有键值对
'''
('name', 'Mike')
('gender', 'man')
('age', 18)
'''
for item in dict0.items():
    print(item)

5.4遍历字典的键值对(拆包)

#将键值对中元组数据进行拆分,拆成key + value
'''
name : Mike
gender : man
age : 18
'''
for key, value in dict0.items():
    print(f'{key} : {value}')

三、集合

1.格式

可以用{ }或set( )创建集合,但若要创建空集合只能用set( ),<{ }用来创建空字典>

集合有去重性,即集合中的元素没有重复的

集合有可变性

set1 = {1, 2, 3, 4, 5, 6}
print(set1) # {1, 2, 3, 4}

set2 = {20, 24, 15, 67, 58, 64, 5, 34, 90}
print(set2) # {64, 34, 67, 58, 5, 15, 20, 24, 90}

set3 = {1, 1, 2, 3, 4}
print(set3) # {1, 2, 3, 4}

set4 = set('abcdefg')
print(set4) # {'d', 'b', 'e', 'a', 'f', 'g', 'c'}

set5 = set()
print(set5) # set()

集合没有顺序因此集合不支持下标

2.增加数据

2.1add()

用于增加单一数据,否则报错

set = {0, 1, 10, 11, 100}
set.add(101) # 追加
set.add(100) # 不能重复
print(set) # {0, 1, 100, 101, 10, 11}

2.2update

增加序列

# update
set = {0, 1, 10, 11, 100}
set.update([101, 110, 111, 100])
print(set) # {0, 1, 100, 101, 10, 11, 110, 111}

3.删除数据

3.1remove

删除集合中的指定数据,如果数据不存在,则报错

set = {0, 1, 10, 11, 100}
set.remove(11)
print(set) # {0, 1, 100, 10}
set.remove(111)
print(set) # 报错

3.2discard()

删除集合中的指定数据,如果数据不存在不会报错

set = {0, 1, 10, 11, 100}
set.discard(11)
print(set) # {0, 1, 100, 10}
set.discard(111)
print(set) # {0, 1, 100, 10}

3.3pop()

随机删除集合中的某个数据,并返回这个数据

set = {0, 1, 10, 11, 100}
num = set.pop()
print(num) # 0
print(set) # {1, 100, 10, 11}

4.查找数据

  • in:判断数据在集合序列
  • not in:判断数据不在集合序列
set = {0, 1, 10, 11, 100}
print(0 in set) # True
print(0 not in set) # False
print(111 in set) # False
print(111 not in set) # True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值