python 基础知识点(蓝桥杯python科目个人复习计划7)

今天复习的内容是元组,字典相关知识

一.元组

1.简介

    python 中的元组和列表一样,区别在于:元组中的元素不能修改,元组用的是小括号,而列表用的是中括号。

    元组可以包括数字,字符串,元组,列表。

tu = (1, 'a', [2, 3], (4, 5))
print(tu)
print(type(tu))

运行结果:

 

   写元组的时候要在末尾加一个逗号,不然区分不了是元组还是参数。

# tu2 = ()     # <class 'tuple'>
# tu2 = (1) # <class 'int'>
tu2 = (1, )     # <class 'tuple'>
print(type(tu2))

运行结果:

 

访问元组:

a = (0,1,2)
print(a[0])
print(a[1])

运行结果:

 

2.修改元组

    说明:python 中不允许修改元组中的数据,也不能删除其中的元素。

tua = (1, 2, 3)
tua[0] = 4
print(tua)

运行结果:

 

3. index , count 

 元组中 index 和 count 的用法和列表,字符串中的一样。

pyhton 元组中index() 方法可以找出某个对象第一个匹配项的索引值,如果该对象不在元组中则会抛出异常。

(1)index () 中的参数

         obj:指定检索的对象

         start :开始索引,默认为0,可以单独指定,可选参数

          end:结束索引,默认为元组的程度,可选参数,不可以单独指定

(2)count ()函数用来统计某个对象在元组中出现的次数

                                                         第一个例子:

    

a = ('a', 'b', 'c', 'a', 'b')
print(a.index('a', 1, 3)) # 注意是左闭右开区间

运行结果:

第二个例子:

a = ('a', 'b', 'c', 'a', 'b')
print(a.index('a', 1, 4))

运行结果:

第三个例子:

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

运行结果:

 

第四个例子:

tua = (1, 'a', 3, 'b', 5) 
print(tua.index('a', 1, 2))    # 1
tu = ('a', 'b', 'c', 'a', 'e')
print(tu.count('a'))          # 2

二.字典 

1.简要介绍

   dic = {'name': 'zs', 'age': 18}

- 字典和列表一样,也能够存储多个数据,字典是键值对形式。

- 字典中的键具备唯一性,而值可重复.

- 字典的每个元素由2部分组成,键:值。

例如 'name':'班长' ,'name'为键,'班长'为值 - 列表中找某个元素时,是根据下标进行的;字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码 中的'name'、'id'、'sex')。

2.根据键访问值

dic = {'name': 'zs', 'age': 18, 'sex': 'nv'}
print(dic['name'])
print(dic['age'])

运行结果:

 

若访问不存在的键,则会报错:

dic = {'name': 'zs', 'age': 18, 'sex': 'nv'}
print(dic['name1'])

运行结果:

 

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:

​​​​​​dic = {'name': 'zs', 'age': 18, 'sex': 'nv'}
age1 = dic.get('age1')
print(type(age1))
age1= dic.get('age1', 18)  # 若不存在'age1'这个键,就返回默认值20
print('age1')

运行结果:

另一个例子:

dic = {'name': 'zs', 'age': 20}
ad = dic.get('ade')
ad2 = dic.get('ade', '不存在')
print(ad)       # None
print(ad2)      # 不存在

运行结果:

 

3.字典常见操作1 

(1)查看元素

          在字典操作中,不仅可以用key查找元素,还可以用get来获取元素

info = {'name':'吴彦祖','age':18}
print(info['age']) # 获取年龄
# print(info['sex']) # 获取不存在的key,会发生异常
print(info.get('sex')) # 获取不存在的key,获取到空的内容,不会出现异常   None

运行结果:

 

(2) 修改元素

字典中的每个元素都是可以修改的,只要能通过key找到,就可以修改

dic = {'name': 'zs', 'age': 18}
nage = int(input('请输入您的年龄:'))
dic['age'] = nage
print('修改之后的age为%d' % dic['age'])

运行结果:

 

(3)添加元素
# 访问不存在的数据
dic = {'name': 'zs', 'age': 18}
print(dic['id'])

运行结果:

 

如果在使用 变量名['键'] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素

dic = {'name': 'zs', 'age': 18}
print(dic)
dic['id'] = 10
print(dic)

运行结果:

 

(4) 删除元素

          对字典进行删除操作,有一下几种:del、clear()

  •    del删除指定的元素
dic = {'name': 'zs', 'age': 18, 'id': 10}
print('删除前:%s' % dic)
del dic['id']
print('删除后:%s' % dic)

运行结果:

 

  • del删除整个字典 
info = {'name':'monitor', 'sex':'f', 'address':'China'}
print('删除前,%s'%info)
del info
print('删除后,%s'%info)   # NameError: name 'dic' is not defined

运行结果:

 

  • clear清空整个字典 
dic = {'name': 'zs', 'age': 18, 'id': 10}
print('清空前:%s' % dic)
dic.clear()
print('清空后:%s' % dic)

运行结果:

 

4.字典的常见操作2 

  • len() 

       测量字典中,键值对的个数 

dic = {'name': 'zs', 'age': 18, 'id': 10}
print(len(dic))         # 3

运行结果:

 

  • keys 

       返回一个包含字典所有KEY的列表  

dic = {'name': 'zs', 'age': 18, 'id': 10}
print(dic.keys())

运行结果:

 

  • values 

       返回一个包含字典所有value的列表

dic = {'name': 'zs', 'age': 18, 'id': 10}
print(dic.values())

运行结果:

 

  • items 

       返回一个包含所有(键,值)元祖的列表   

dic = {'name': 'zs', 'age': 18, 'id': 10}
print(dic.items())

运行结果:

 

三.遍历 

     通过for ... in ... 我们可以遍历字符串、列表、元组、字典等

(1)字符串遍历

str2 = 'hello' 
for i in str2: 
 print(i, end=' ') # h e l l o 

运行结果:

 

(2) 列表遍历

li = [1, 2, 3] 
for i in li: 
 print(i) 

运行结果:

 

(3) 元组遍历

tu = (1, 2, 3)
for i in tu:
  print(i)

运行结果:

 

(4) 字典遍历

dic = {'name': 'zs', 'age': 20} 
# 遍历字典的key 
for key in dic.keys(): 
 print(key) 
 
# 遍历字典的value 

运行结果:

 

                                                          综合例子 

dic = {'name': 'zs', 'age': 20}
for val in dic.values():
   print(val)

# 遍历字典的项(元素)
for item in dic.items():
   print(item)

# # 遍历字典的键值对
for key, val in dic.items():
   print("key=%s,value=%s" % (key, val))

运行结果:

 

四.enumerate()--枚举 

      enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标, 一般用在 for 循环当中。

     语法:enumerate(sequence, [start=0]) sequence -- 一个序列、迭代器或其他支持迭代对象。 start -- 下标起始位置。

li = ['a', 'b', 'c', 'd'] 
for i, j in enumerate(li): 
 print(i, j) 

运行结果:

 

五.集合 

      集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重。

1.定义一个空集合

set1 = set() # set()函数:创建一个无序不重复元素集 
 # 注意以下写法为一个空字典 
 set2 = {} 
 
s1 = set() 
print(type(s1)) # <class 'set'> 
 
a = set([1, 2, 3, 4]) # 需要放入可迭代对象 
print(a) # {1, 2, 3, 4} 

运行结果:

 

2.添加元素 

(1)add
s2 = {1, 2, 3, 4} 
#添加元素 
print(s2) # {1, 2, 3, 4} 
s2.add(8) 
print(s2) # {1, 2, 3, 4, 8} 

运行结果:

 

(2)update
s2 = {1, 2, 3, 4} 
#是把要传入的元素拆分,做为个体传入到集合中 
print(s2) # {1, 2, 3, 4} 
s2.add('rty') 
print(s2) # {1, 2, 3, 4, 'rty'} 
s2.update('abcd') 
print(s2) # {1, 2, 3, 4, 'd', 'a', 'b', 'c'} 

运行结果:

 

(3) 删除元素(remove,pop,discard)
  • remove
s2 = {1, 2, 3, 4} 
# 使用remove删除集合中的元素 如果有 直接删除 如果没有 程序报错 
s2.remove(1) 
print(s2)

运行结果:

 

 

  • pop 

set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

# 使用pop删除是随机删除集合中的元素 
s2 = {1, 2, 4, 5, 6} 
# s2 = {'a', 'c', 'b', 'd'} 
s2.pop() 
print(s2) # {2, 4, 5, 6}

运行结果:

 

# 为什么整数不会无序排列呢?

字典和集合无序的实现方式是hash表。没错,他们是通过hash值来将对象放入hash表中,从而达到无序的操作(众所周知对 象的hash值是不断变化的)

  •  discard
# 使用discard删除 如果元素存在 直接删除 如果元素不存在 不做任何操作
a = {1, 2, 3, 4}
a.discard(1)
print(a) # {2, 3, 4}
a.discard(5)
print(a)

运行结果:

 

3.交集和并集( & 和 | )

(1) 交集
a = {1, 2, 3, 4} 
b = {3, 4, 5, 6} 
# 交集 
se = a & b 
print(se) 
# {3, 4} # 如果没有的话,显示set()

运行结果:

 

(2) 并集
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
se2 = a | b
print(se2)
# {1, 2, 3, 4, 5, 6}

运行结果:

(3) 差集
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
se = a - b 
print(se) 
# {1, 2} 

运行结果:

 

不行了,爆肝写完的,明天继续! 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

          

         

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值