元组,字典,集合定义及方法
'''元组(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]