【Python】Python学习笔记5

代码笔记:

'''
元组(tuple)基本格式:元组名 = (元素1,元素2,元素3,....)
    注意:
        所有元素包含在小括号内,元素与元素之间用逗号(,)隔开,不同元素可以是不同数据类型。
        当元组只有一个元素时,必须要加逗号,否则返回这个唯一元素的数据类型。
        元组只支持查询操作,不支持增删改操作。
        元组也有下标,下标从0开始。
    count(),index(),len()操作与列表相同。
'''
tua = (1, 2, 3, 4, 5, 'a', [234])
print(type(tua))    # <class 'tuple'>
tua1 = ()   # 定义空元组
print(type(tua1))   # <class 'tuple'>
tua2 = (1)          # 当元组只有一个元素时,必须要加逗号,否则返回这个唯一元素的数据类型。
print(type(tua2))   # <class 'int'>
tua3 = (1,)
print(type(tua3))   # <class 'tuple'>
li = [1, 2, 3]
li[2] = 'a'         # 列表允许更改操作
print(li)           # [1, 2, 'a']
print(tua[5])       # a
# tua[2] = 4          # 报错:TypeError(类型错误),元组不支持修改操作。
print(tua.count(2))     # 1 统计2在元组中出现的次数
print(tua.index(4))     # 2 查找4在元组中的位置
print(len(tua))         # 7 返回元组内元素的个数
'''
元组的应用场景:
    函数的参数和返回值。
    格式化输出后面的()本质上是一个元组。
    保护数据安全:数据不允许被修改的时候使用。
'''
name = '小华'
age = 18
print("%s的年龄是:%d" % (name, age))    # 小华的年龄是:18
info = (name, age)
print(type(info))                      # <class 'tuple'>
print("%s的年龄是:%d" % info)           # 小华的年龄是:18
'''
字典(dictionary)基本格式:字典名 = {键1:值1,键2:值2,...}
    注意:
        字典以键值对的形式保存,键与值用冒号(:)隔开,键值对之间用逗号(,)隔开。
        键具有唯一性,值允许重复;如果键重复,则输出后面的值,即前面的值背后面的值覆盖。
        字典中没有下标,查找元素需要根据键名进行查找。
    常见操作:
        查看元素:
            变量名[键名]:键名不存在时,报错。
            变量名.get[键名,返回值]:返回值可以省略,键名不存在时,返回none;
        修改元素:
            变量名[键名] = 要修改的值;列表通过下标修改,字典通过键名修改。
        新增元素:
            变量名[键名] = 要新增的值;键名存在就修改,不存在就新增。
        删除元素:
            del:
                删除整个字典:del 字典名
                删除指定元素:del 字典名[键名];如果键名不存在就会报错。
            clear():清空字典里的所有数据,但是保存该字典。
                格式:字典名.clear();
            pop():删除指定键值对,键名不存在就会报错。
                格式:字典名.pop(键名)
'''
dic = {'小明':18,'小华':20}
print(type(dic))    # <class 'dict'>
dic1 = {'小明':18,'小明':20}
print(dic)          # {'小明': 20}
print(dic['小明'])    # 18
# print(dic['小红'])    # 报错:KeyError(键错误)
print(dic.get('小明'))    # 18
print(dic.get('小红'))    # None
print(dic.get('小红','不存在'))  # 不存在
dic['小明'] = 22      #修改
print(dic)  # {'小明': 22, '小华': 20}
dic['小红'] = 19      # 新增
print(dic)  # {'小明': 22, '小华': 20, '小红': 19}
dic2 = {1:2}
del dic2
# print(dic2)     # 报错:NameError(名称错误),dic2已经被删除了。
del dic['小红']
print(dic)  # {'小明': 18, '小华': 20}
dic.clear()
print(dic)  # {} 返回了一个空字典
dic['number']=123
print(dic)  # {'number': 123}
dic.pop('number')   # 删除键为number的元素
print(dic)  # {}
'''
字典的操作:
    len():求字典长度
        格式:len(字典名)
    keys():返回字典中的所有键名
        格式:字典名.keys()
    values():返回字典中所有的值
        格式:字典名.values()
    items:返回字典中所有的键值对,键值对以元组的形式返回。
        格式:字典名.items()
字典的应用场景:利用键值对存储描述一个物体的相关信息。
'''
dic3 = {'name': '小华','age': 18,'score': 96.2}
print(len(dic3))    # 3 字典中有3个键值对
print(dic3.keys())  # dict_keys(['name', 'age', 'score'])
print(dic3.values())    # dict_values(['小华', 18, 96.2])
for i in dic3.keys():   # 用for循环取出字典中的所有键名
    print(i)
for i in dic3.values(): # 用for循环取出字典中的所有值
    print(i)
print(dic3.items())     # dict_items([('name', '小华'), ('age', 18), ('score', 96.2)])
for i in dic3.items():  # 用for循环取出字典中的所有键值对
    print(i)
'''
集合(set)基本格式:集合名 = {元素1,元素2,...}
    应用场景:集合是无序的,里面的元素是唯一的,可以用于元组或者列表去重。
    注意:
        集合中的元素可以是不同数据类型。
        集合无序的特性涉及hash表。
        由于集合的无序性,故集合中的元素不能够实现修改操作。
'''
s1 = {1, 2, 3, 4}
print(s1, type(s1),sep='\t')    # {1, 2, 3, 4}	<class 'set'>
s2 = {}     # 定义空字典
print(type(s2))     # <class 'dict'>
s3 = set()  # 定义空集合
print(type(s3))     # <class 'set'>
s4 = {'a', 'b', 'c', 'd'}
print(s4)       # {'d', 'c', 'b', 'a'};每次打印的结果是无序的
print(hash('a'))    # -1223095338836566612
print(hash('a'))    # -1223095338836566612
print(hash('a'))    # -1223095338836566612
# 字符串运行的每次结果不一样,每次的hash值不同,在hash表中的位置不同,实现了集合的无序性
print(hash(1))      # 1
print(hash(2))      # 2
print(hash(3))      # 3
# python中int型的hash值就是本身,hash表中的位置不会发生改变,所以顺序不会改变
s5 = {1,5,4,2,3,6,8,10,2,3,3,5}
print(s5)       # {1, 2, 3, 4, 5, 6, 8, 10};根据集合的唯一性,实现自动去重。
'''
集合的相关操作:
    添加操作:
        add():
            格式:集合名.add(需要添加的元素)
            注意:
                一次只能添加一个元素,添加的元素是一个整体。
                如果添加的元素在原来集合中已经存在,则不进行任何操作。
        update():
            格式:集合名.update(需要添加的元素)
            注意:
                一次可以添加多个元素,括号内的元素必须是能够被for循环的可迭代对象(如字符串,列表,元组等)。
                update是将要传入的元素进行拆分后,一个一个添加到集合当中。
    删除操作:
        remove():
            格式:集合名.remove(要删除的元素)
            注意:
                删除的元素如果原集合中不存在就会报错。
                一次只能删除一个元素。
        pop():
            格式:集合名.pop()
            注意:
                对集合进行无序排序,然后将坐边第一个元素删除。
        discard():
            格式:集合名.discard(要删除的元素)
            注意:选择要删除的元素,有的话就删除,没有的话就不会发生任何改变。
'''
se1 = {1,2,3,4}
print("原集合:", se1)   # 原集合: {1, 2, 3, 4}
se1.add(5)
print("新集合:", se1)   # 新集合: {1, 2, 3, 4, 5}
se1.add((6,7,8))        # 添加一个元组
print("新集合:", se1)   # 新集合: {1, 2, 3, 4, 5, (6, 7, 8)}
se2 = {1,2,3}
print("原集合:", se2)  # 原集合: {1, 2, 3}
se2.update('hello') # 在集合中插入字符串
print("新集合:", se2)  # 新集合: {1, 2, 3, 'e', 'l', 'o', 'h'};字符串插入进去是无序的
se2.update([5,6,7]) # 在集合中插入列表
print("新集合:", se2)  # 新集合: {1, 2, 3, 'e', 'l', 'o', 5, 6, 7, 'h'}
se2.update((8,9))   # 在集合中插入元组
print("新集合:", se2)  # 新集合: {1, 2, 3, 5, 6, 7, 8, 9, 'h', 'o', 'l', 'e'}
se3 = {'10', '12', 10, 12, 14}
se3.remove('12')
print(se3)  # {'10', 10, 12, 14}
se4 = {10,1,2,3}
se4.pop()
print(se4)  # {1, 10, 2}
se4.add('a')
print(se4)  # {1, 2, 10, 'a'}
se4.pop()
print(se4)  # {2, 10, 'a'}
se5 = {1, 2, 3, 4, 5}
print(se5)  # {1, 2, 3, 4, 5}
se5.discard(5)
print(se5)  # {1, 2, 3, 4}
'''
交集(&)和并集(|):
    交集:取两个集合共有的部分。
        格式:集合1 & 集合2
        注意:如果两个集合没有交集,则返回一个空集合set()。
    并集:取两个集合中的所有元素,重复的仅保留一个(集合的唯一性)。
        格式:集合1 | 集合2
'''
set1 = {'小华', 1, 2, 3, 4}
set2 = {2, 3, 4, 5, '小华'}
print(set1 & set2)  # {2, 3, 4, '小华'}
set3 = {5, 6, 7, 8}
set4 = {10, 5, 7, 9, 4}
print(set3 | set4)  # {4, 5, 6, 7, 8, 9, 10}

运行结果:

<class 'tuple'>
<class 'tuple'>
<class 'int'>
<class 'tuple'>
[1, 2, 'a']
a
1
3
7
小华的年龄是:18
<class 'tuple'>
小华的年龄是:18
<class 'dict'>
{'小明': 18, '小华': 20}
18
18
None
不存在
{'小明': 22, '小华': 20}
{'小明': 22, '小华': 20, '小红': 19}
{'小明': 22, '小华': 20}
{}
{'number': 123}
{}
3
dict_keys(['name', 'age', 'score'])
dict_values(['小华', 18, 96.2])
name
age
score
小华
18
96.2
dict_items([('name', '小华'), ('age', 18), ('score', 96.2)])
('name', '小华')
('age', 18)
('score', 96.2)
{1, 2, 3, 4}	<class 'set'>
<class 'dict'>
<class 'set'>
{'c', 'd', 'a', 'b'}
-2301105608563372962
-2301105608563372962
-2301105608563372962
1
2
3
{1, 2, 3, 4, 5, 6, 8, 10}
原集合: {1, 2, 3, 4}
新集合: {1, 2, 3, 4, 5}
新集合: {1, 2, 3, 4, 5, (6, 7, 8)}
原集合: {1, 2, 3}
新集合: {1, 2, 3, 'h', 'l', 'o', 'e'}
新集合: {1, 2, 3, 'h', 'l', 5, 6, 7, 'o', 'e'}
新集合: {1, 2, 3, 'h', 'l', 5, 6, 7, 8, 9, 'o', 'e'}
{10, 12, 14, '10'}
{1, 10, 2}
{1, 2, 10, 'a'}
{2, 10, 'a'}
{1, 2, 3, 4, 5}
{1, 2, 3, 4}
{'小华', 2, 3, 4}
{4, 5, 6, 7, 8, 9, 10}

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值