ITdage 发表于 2022-7-19 22:01:07

元组,字典,集合定义及方法

'''
    元组(tuple)
    定义一个元组 tuple1 = ()
    元组是一个有序的序列,可以存储任何数据类型的数据==>与列表的相似点
    元组是一个写保护的,创建之后里面的元素不能被删除
    当元组只有一个值的时候,需要在元素后加逗号
    元组可以使用索引,但是不能使用索引进行赋值
    元组中的元素不能改变,不能删除元组中元素
    元组可以被删除 del 元组名
'''
# tuple1 = ('xiaozhang')
# print(tuple1)   #xiaozhang
# tuple1 = ('xiaozhang',)
# print(tuple1)       #('xiaozhang',)
# tuple1 = ('dcs','xian05',10086,['xiao','10010'])
# print(tuple1)         #('dcs', 'xian05', 10086, ['xiao', '10010'])
# print(type(tuple1))   #<class 'tuple'>

#使用索引取值
# tuple1 = ('dcs','xian05',10086,['xiao','10010'])
# print(tuple1)            #xian05,元组也可以使用索引
# print(tuple1)          #('dcs', 'xian05'),元组也可以使用切片
# print(tuple1.index('dcs'))#0
# print(tuple1.count('dcs'))#1

#元组不能直接被修改,可以间接的修改元组
# tuple1 = ('dcs','xian05',10086,['xiao','10010'])
# list1 = list(tuple1)
# print(list1)          #['dcs', 'xian05', 10086, ['xiao', '10010']]
# list1 = 'hello'
# print(list1)          #['hello', 'xian05', 10086, ['xiao', '10010']]
# print(tuple(list1))   #('hello', 'xian05', 10086, ['xiao', '10010'])
# tuple2 = tuple(list1) #使用tuple()函数把修改之后的列表转换成一个元组tuple2

#面试题:元组可以改变吗?
#当元组中的元素作为一个整体的情况之下是不可以被改变的
#如果元组中存在其他的如列表序列,可以用索引把列表取出,然后修改取出之后的列表,这样能对元组的值进行修改(二维数组)
# tuple1 = ('dcs','xian05',10086,['xiao','10010'])
# print(tuple1)    #['xiao', '10010']
# tuple1 = 'shuaige'
# print(tuple1)       #('dcs', 'xian05', 10086, ['shuaige', '10010'])

#元组的迭代 ==> 可以使用for循环来遍历取值
# tuple1 = ('dcs','xian05',10086,['xiao','10010'])
# for i in tuple1:
#   print(i)

#============================python中的字典=============================
'''
    字典(dict),定义字典表达式 dict1 = {}
    字典是无序的,是以键值对的形式存储:key:value形式进行存储
    key是唯一的,value是任意的
    字典也有自己的函数dict()
'''
#字典的定义
# dict1 = {'name':'xiaozhang','age':18}
# print(dict1)            #{'name': 'xiaozhang', 'age': 18}
# print(type(dict1))      #<class 'dict'>
#使用dict()函数
# list1 = [('name','xiaozhang'),('age',18)]
# tuple1 =(('name','xiaozhang'),('age',18))
# print(dict(list1))#{'name': 'xiaozhang', 'age': 18}
# print(dict(tuple1)) #{'name': 'xiaozhang', 'age': 18}

#给字典添加键值对
#当字典中没有sex键的时候,是会对字典添加一个sex:man的键值对
#如果字典中存在sex键的时候,是会把sex原有的值进行修改
# dict1 = {'name':'xiaozhang','age':18}
# dict1['sex'] = 'man'
# print(dict1)    #{'name': 'xiaozhang', 'age': 18, 'sex': 'man'}
# dict1 = {'name':'xiaozhang','age':18,'sex': 'man'}
# dict1['sex'] = 'women'
# print(dict1)    #{'name': 'xiaozhang', 'age': 18, 'sex': 'women'}

#取出字典中的键 ==>用遍历的方式for循环
# dict1 = {'name':'xiaozhang','age':18,'sex': 'women'}
# for i in dict1: #不加任何修饰函数,则默认取值为字典中的键(最好别这样写)
#   print(i)      #name,age,sex ==>字典中的键
# for i in dict1.keys():
#   print(i)      #name,age,sex ==>字典中的键
#取字典中值
# for i in dict1.values():    #表示的是取的是字典中的所有值,加了一个.values()修饰函数
#   print(i)      #xiaozhang,18,women

#如何取字典中特定的值
# dict1 = {'name':'xiaozhang','age':18,'sex': 'women'}
# print(dict1['age'])         #18   类似索引
# print(dict1.get('age'))   #18

#1.setdefault()函数,给字典中添加键值对
#如果添加的键存在的话,就会添加无效
#如果不添加值的话,默认认为None
# dict1 = {'name':'xiaozhang','age':18}
# dict1.setdefault('sex','man')
# print(dict1)#{'name': 'xiaozhang', 'age': 18, 'sex': 'man'}
# dict1 = {'name':'xiaozhang','age':18,'sex':'women'}
# dict1.setdefault('sex','man')
# print(dict1)#{'name': 'xiaozhang', 'age': 18, 'sex': 'women'}

#2.删除字典del
# dict1 = {'name':'xiaozhang','age':18}
# del dict1         #删除字典
# del dict1['age']#通过字典中的键删除键值
# print(dict1)      #{'name': 'xiaozhang'}

#for in语句遍历字典 ==>同时取字典中的键与值
# dict1 = {'name':'xiaozhang','age':18}
# for i in dict1:         #不加修饰函数取键值
#   print(i,dict1)   #同时取到字典中的键与值
#3.通过修饰函数items()同时取字典中的键与值
# dict1 = {'name':'xiaozhang','age':18}
# for k,v in dict1.items():
#   print(k,v)#k取的键,v取的是值
#4.pop()函数,删除指定的键并返回删除的键的值
# dict1 = {'name':'xiaozhang','age':18}
# print(dict1.pop('name'))    #xiaozhang
# print(dict1)                #{'age': 18}
#5.popitem()函数
# print(dict1.popitem())#('age', 18)删除之后返回的数据类型为元组,随机删除
# print(dict1)            #{'name': 'xiaozhang'}

#6.clear()函数,清空字典的内容
# dict1 = {'name':'xiaozhang','age':18}
# dict1.clear()
# print(dict1)    #{}

#7.get(k)函数,根据指定key获取字典中的值
# dict1 = {'name':'xiaozhang','age':18}
# print(dict1.get('name'))    #xiaozhang
# print(dict1.get('age'))   #18

#8.formkeys()函数,定义一个初始化的字典 ==>去重
# dict1 = {}.fromkeys(['name','age'],'xiaozhang')
# print(dict1)    #{'name': 'xiaozhang', 'age': 'xiaozhang'}
# dict1 = {}.fromkeys(['name','age'])
# dict1['name'] = 'xiaozhang'
# dict1['age'] = 18
# print(dict1)    #{'name': 'xiaozhang', 'age': 18}

#9_contains_()函数,属于私有变量,判断字典中含有某个键值 ==>返回布尔值
# dict1 = {'name':'xiaozhang','age':18}
# print(dict1.__contains__('name'))   #True
# print(dict1.__contains__('name1'))#False
#判断name1是否在字典dict1中,如果存在就打印字典,不存在则把‘name1’:'xiamei'添加到dict1中并且打印出来
# dict1 = {'name':'xiaozhang','age':18}
# if dict1.__contains__('name1'):
#   print(dict1)
# else:
#   dict1.setdefault('name1','xiaomei')
#   print(dict1)

#10.update()利用一个字典更新另外一个字典
#如果需要更新的元素在原字典中存在,则把原来的项覆盖
# dict1 = {'name':'xiaozhang','age':18}
# dict2 = {'sex':'man'}
# dict3 = {'sex':'women'}
# dict1.update(dict2)
# print(dict1)      #{'name': 'xiaozhang', 'age': 18, 'sex': 'man'}
# dict1.update(dict3)
# print(dict1)      #{'name': 'xiaozhang', 'age': 18, 'sex': 'women'}

#============================python中的集合=============================
#集合和字典是无序的序列
#1.可变集合set==> 集合中的内容是不能重复的
#2.不可变集合forzenset
#集合最大的用处是用来去重
#set(),forzenset()
# name = 'xiaozhang'
# set1 = set(name)
# set1.add('e')       #给集合添加元素‘e’
# set1.remove('e')    #移除集合中的元素‘e’
# str1 = set1.pop()   #随机删除集合中的元素,别切返回已删除的值
# set2 = {1,2}
# set1.update(set2)   #追加集合set2中元素到set1中
# print(str1)
# print(set1)
# print(type(set1))   #<class 'set'>

#不可变集合forzenset
# name = 'xiaozhang'
# forzenset1 = frozenset(name)
# print(forzenset1)         #frozenset({'z', 'a', 'o', 'i', 'x', 'g', 'h', 'n'})
# print(type(forzenset1))   #<class 'frozenset'>
# forzenset2 = forzenset1.copy()#集合复制
# print(forzenset1)
# print(forzenset2)

#==============python的去重方法========================
#1.利用set集合去重
# list1 =
# set1 = set(list1)   #使用set()函数把list1列表转换成集合
# print(set1)         #{1, 2, 3, 4}
# list2 = list(set1)
# print(list2)      #
#2.利用for循环去重
# list1 =
# list2 = []
# for i in list1:
#   if i not in list2:
#         list2.append(i)
# print(list2)            #
#3.fromkeys()利用字典去重
# list1 =
# dict1 = {}.fromkeys(list1)
# print(dict1)      #{1: None, 2: None, 3: None, 4: None}
# print(dict1.keys()) #dict_keys()
# list2 = list(dict1)
# print(list2)      #

'''面试必问
    1.列表怎么进行升序和降序排列
    2.给你一个列表你怎么对列表中的内容进行去重,有多少种方法
'''
#1.列表排序
# list1 = ['qwe','asd','edc','10086','10000']
# list1.sort()                #默认升序
# print(list1)    #['10000', '10086', 'asd', 'edc', 'qwe']
# list1.sort(reverse=True)    #reverse=True设置降序
# print(list1)    #['qwe', 'edc', 'asd', '10086', '10000']
#
# list2 = sorted(list1,reverse=True)#sorted()函数进行降序操作,生成新的列表
# print(list2)    #['qwe', 'edc', 'asd', '10086', '10000']

#2.列表去重三种方式
# list1 =
#①利用集合set去重
# list2 = list(set(list1))
# print(list2)    #
#②利用for循环去重
# list2 = []
# for i in list1:
#   if i not in list2:
#         list2.append(i)
# print(list2)    #
#③利用字典的键值不能重复去重
# set1 = {}.fromkeys(list1).keys()
# print(set1)         #dict_keys()
# print(type(set1))   #<class 'dict_keys'>
# print(list(set1))   #

页: [1]
查看完整版本: 元组,字典,集合定义及方法