首页 > 编程语言 >python day08 字典、元组、集合内置方法

python day08 字典、元组、集合内置方法

时间:2023-05-22 20:55:06浏览次数:51  
标签:username day08 python 18 age 元组 print dic kevin

字典的内置方法

定义方式

d = {'usernamne':"kevin"}

定义空字典:d = {}

1.key取值

dic = {'name': 'kevin', 'age': 18, 'hobbies': ['play game', 'basketball']}
print(dic['name'])  # kevin
print(dic['hobbies']) # ['play game', 'basketball']
print(dic['hobbies'][1]) # basketball

2.赋值操作

{'name': 'jack', 'age': 18, 'hobbies': ['play game', 'basketball']}
dic['name'] = 'kevin'  # {'name': 'kevin', 'age': 18, 'hobbies': ['play game', 'basketball']}
dic['gender'] = 'male' # 字典:当K存在的时候,就是修改操作,当k不存在的时候,就是增加一个key值 (重要)
# print(dic)
# dic1 = {'name': 'yyy'}
# dic1['name'] = 'xxx'
# dic1['age'] = 'aaaa'
# dic1['gender'] = 'xxx'
# print(dic1)
# print(len(dic1))   # 3

3. 成员运算符 in 和 not in

d = {'username':'kevin', 'age':18}
print('kevin' in d) # False
print('username' in d) # True
print('username' not in d)  #False

4. 删除

d = {'username':'kevin', 'age':18}
d.pop('username')  # {'age': 18} 字典删除k值必须写上要删除的key值,不能通过索引删除值
del d['username']  # {'age': 18}
print(d)

5. 键keys(),值values(),键值对items()三剑客

d = {'username': 'kevin', 'age': 18}
print(d.keys())  # dict_keys(['username', 'age'])  # 把它当成列表来记忆,把字典的所有key拿出来,组装成列表返回

print(d.values())  # dict_values(['kevin', 18]) #  把它当成列表来记忆,把字典的所有value值拿出来,组装成列表返回

# 返回的是列表套元组的形式,列表里面是一个个的小元组,元组里面是字典的k和v
print(d.items()) # dict_items([('username', 'kevin'), ('age', 18)])

6.循环

d = {'username': 'kevin', 'age': 18}
 for i in d.keys():
     print(i)
#
 for j in d.values():
     print(j)
d.items()----->dict_items([('username', 'kevin'), ('age', 18)])
for items in d.items():
     # items是元组啊
     print(items)  # ('username', 'kevin')
     print(items)  # ('age', 18)
     print(items[0], items[1])

for dic in d:
     print(dic)  # 暴露的是k值

字典的其他方法

1. get

d = {'username': 'jack', 'age': 18}
print(d['username'])
print(d['username1'])  # 字典取值,如果key不存在,直接报错
print(d.get('username'))  # jack
print(d.get('username1'))  # None 如果使用get取值,key存在,则直接取出对应的值,如果key不存在,返回None
if d.get('username1'):
    print('有值')
else:
    print('无值')

'''以后字典取值最好使用get取值,不会直接报错'''
print(d.get('username', 'xxx'))  # jack
print(d.get('username1', 'xxx'))  # xxx, get可以传递第二个参数,意思是默认值,当取出的key不存在的时候,直接返回第二个参数的值


d = {'username': 'jack', 'age': 18, 'gender':'male'}
# popitem
print(d.popitem())  # ('age', 18)  ('gender', 'male')
print(d)  # {'username': 'jack'}    {'username': 'jack', 'age': 18}
'''代表的是删除字典的元素。但是,删除的值末尾的k:v,并且把最后一个k:v弹出来了'''

2. update

d = {'username': 'jack', 'age': 18, 'gender': 'male'}

'''update的功能是:如果字典的k存在,则修改原来的k,如果不存在,则添加一个新值'''
d1 = {'username': 'tank', 'hobbys': ['read', 'music']}
d.update(d1)
print(d) # {'username': 'tank', 'age': 18, 'gender': 'male', 'hobbys': ['read', 'music']}

3. fromkeys(了解)

dic = dict.fromkeys(['k1','k2','k3', 'k4'],[]) # 相当于是给字典批量赋值
print(dic)  # {'k1': [], 'k2': [], 'k3': []}
'''使用fromkeys初始化出来的值,占用的是一样的内存地址,有一个值改变了,其他值跟着改变'''

dic['k1'].append(666)  # {'k1': [666], 'k2': [666], 'k3': [666], 'k4': [666]}
dic['k2'].append(999)  # {'k1': [666, 999], 'k2': [666, 999], 'k3': [666, 999], 'k4': [666, 999]}
dic['k3'].append(888)  # {'k1': [666, 999, 888], 'k2': [666, 999, 888], 'k3': [666, 999, 888], 'k4': [666, 999, 888]}
print(dic)

4. setdefault

dic = {'k1': 111, 'k2': 222}
res = dic.setdefault('k3', 333)  # {'k1': 111, 'k2': 222, 'k3': 333}
res = dic.setdefault('k3', 333)  # {'k1': 111, 'k2': 222, 'k3': 333}
print(dic)
print(res)  # 333
# key不存在则新增键值对,并将新增的value返回
# key存在则不做任何修改,并返回已存在key对应的value值

元组的内置方法

定义

使用小括号括起来,内部存放多个元素,元素之间逗号个隔开,元素值不支持修改(索引对应的那个元素不能修),不可变的列表。

1. 类型转换

print(tuple('hello'))  # ('h', 'e', 'l', 'l', 'o')
print(tuple((1, 2, 3, 4)))  # (1, 2, 3, 4)
print(tuple([1, 2, 3, 4, 5]))  # (1, 2, 3, 4, 5)
print(tuple({'a': 1, 'b': 2}))  # ('a', 'b')
print(tuple({1, 2, 3, 4}))  # (1, 2, 3, 4)

2. 索引取值

t = (1, 2, 3, 4)
print(t[0])
print(t[1])
print(t[2]) # 索引取值,索引从0开始
print(t[-1])
print(t[-2]) # 负数代表的就是方向

3. 切片

t = (1, 2, 3, 4)
print(t[0:2])  # (1, 2)
print(t[0:])  # (1, 2)
print(t[:2])  # (1, 2)
print(t[0:3:2])  # (1, 2)

4. 求长度

t = (1, 2, 3, 4)
print(len(t))

5. 成员运算 in 和 not in

tup = (1, 2, 3, 4, 5, 6, )
print(1 in tup)
# True

 

6. 循环

tup = (1, 2, 3, 4, 5, 6, )
for i in tup:
    print(i)

7. 单一元素元组

'''当元组内只有一个元素的时候,也要加上逗号结尾,否则不是元组类型!'''t = (123, )
'''建议:
        只要是容器类型,当元素只有一个的时候,建议都加上逗号
容器类型:
    只要是能够存放多个元素的数据类型都可以称之为是容器类型
'''

集合的内置方法

定义:

使用大括号括起来,内部存放多个元素,元素之间逗号隔开,不是k:v键值对的形式

s = {1, 2, 3, 4}

集合功能:

去重、集合运算、无序

1. 类型转换

# 空集合
set()
print(set(123))   不行
print(set(123.1)) 不行
print(set('hello'))  # {'e', 'o', 'l', 'h'}
print(set([1, 2, 3, 4, 4, 3, 2, 1]))  # {1, 2, 3, 4}
print(set((1, 2, 3, 4, 5)))  # {1, 2, 3, 4, 5}
print(set({'username': 'kevin', 'age': 28}))  # {'age', 'username'}
'''集合能够把支持for循环的数据类型都转为集合类型!'''

练习:

name_list = ['kevin', 'tank', 'tony', 'tony', 'jack', 'jack', 'jack', 'tony', 'ly',]
# 基本要求:去重
print(set(name_list))  # {'tank', 'jack', 'kevin'}

# 再次转为列表
print(list(set(name_list)))  # ['kevin', 'tank', 'jack']

#### 拔高要求
# 去重,并且保留原来的顺序

new_list = [] # 用来存放取出之后的元素
for name in name_list:
    # name----->列表的一个个元素
    if name not in new_list:
        new_list.append(name)

print(new_list)  # ['kevin', 'tank', 'tony', 'jack', 'ly']

2. 集合的关系运算

friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
friends2 = {"Jy","ricky","jason","egon"} # 用户2的好友们

1.合集/并集(|):求两个用户所有的好友(重复好友只留一个)

print(friends1 | friends2) # {'zero', 'kevin', 'ricky', 'Jy', 'jason', 'egon'}

2. 交集(&):求两个用户的共同好友

print(friends1 & friends2)  # {'jason', 'egon'}

3. 差集(-)

print(friends1 - friends2)  # {'kevin', 'zero'}
print(friends2 - friends1)  # {'Jy', 'ricky'}

4. 对称差集(^):求两个用户独有的好友们(即去掉共有的好友)

print(friends1 ^ friends2)

5. 值是否相等(==)

print(friends1 == friends2) # False

6. 父集(>=):一个集合是否包含另外一个集合

print({1, 2, 3} >= {1, 2, 3}) # True

7. 子集(<):一个集合是否被另外一个集合包含

print({1, 2, 3} < {1, 2}) # False

8.集合练习题

一.关系运算
  有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
  pythons={'ly','qq','kevin','ricky','gangdan','biubiu'}
  linuxs={'kermit','tony','gangdan'}
  1. 求出即报名python又报名linux课程的学员名字集合
  2. 求出所有报名的学生名字集合
  3. 求出只报名python课程的学员名字
  4. 求出没有同时这两门课程的学员名字集合
"""
# 求出即报名python又报名linux课程的学员名字集合
>>> pythons & linuxs
# 求出所有报名的学生名字集合
>>> pythons | linuxs
# 求出只报名python课程的学员名字
>>> pythons - linuxs
# 求出没有同时这两门课程的学员名字集合
>>> pythons ^ linuxs

 

3. 内置方法

1. 长度(len)

s={'a','b','c'}
len(s)

2. 成员运算(in  not in)

s = {1, 2, 3, 4, }
print(1 in s)
# True

3. 循环

for item in s:
    print(item)

 

标签:username,day08,python,18,age,元组,print,dic,kevin
From: https://www.cnblogs.com/zfq132/p/17421708.html

相关文章

  • 用Python开发输入法后台(3)——我自己的输入法的规则
    我的输入法基本开发完成了,如下所示:  现在总结一下我的输入规则:1.用户输入几个字符,就代表几个字的词.比如输入'w'表示以w开头的单字词,输入wm,表示拼音首字母开头的双字词,gsm表示拼音首字母开头的3字词; 2.输入分号,表示词的个数已固定,需要进一步筛选;同时......
  • python调用父类方法的三种方式(super调用和父类名调用)
    子类调用父类的方法的三种方式:父类名.方法名(self)super(子类名,self).父类方法名()super().父类方法名注意:super()通过子类调用当前父类的方法,super默认会调用第一个父类的方法(适用于单继承的多层继承如下代码:#自定义师傅类-古法classMaster(object):#方......
  • 用Python将女朋友的照片做成壁纸软件,实现桌面壁纸自动更换!
    话说兄弟们,女朋友生气了都是怎么哄的?不会吧不会吧,不会有人还是单身狗吧!  算了,还是回到正题吧,再说我要挨打了~今天咱们来交流一下程序员是怎么哄女朋友的,话不多说直接开始!准备工作1、环境首先我们准备好环境和编辑器,我使用的是:Python3.8解释器Pycharm编辑器2、......
  • python基础08
    字典的内置方法1#dic={'username':"kevin",'age':18}2#定义空字典3#d={}4#info=dict(username='kevin',age=18)5#print(info)67##1.支持key取值8#new_dic=dic['username']9#print(new_dic)10#ite......
  • python 问题修复ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+
    目录python问题修复ImportError:urllib3v2.0onlysupportsOpenSSL1.1.1+升级openssl版本降低urllib版本python问题修复ImportError:urllib3v2.0onlysupportsOpenSSL1.1.1+这个问题时python版本安装的urllib3版本过高,而openssl版本太低导致的解决无非两种方法,降低......
  • python pip超时解决方案
    目录pythonpip超时解决方案使用-i选项指定pip源使用--default-timeout选项增加超时时间增加重试次数pythonpip超时解决方案当执行pip3install命令时出现超时错误,通常是由于网络连接不稳定或网络速度较慢引起的。为了解决这个问题,你可以尝试以下方法:使用-i选项指定......
  • python 入门
    python入门#!/usr/bin/python#coding=utf-8ifTrue:print"True"else:print"False"print"helloworld"#total=item_one+item_two+item_threedays=['Monday','Tuesday','wednesday�......
  • 利用Python爆破数据库备份文件
    某次测试过程中,发现PHP备份功能代码如下://根据时间生成备份文件名$file_name='D'.date('Ymd').'T'.date('His');$sql_file_name=$file_name.'.sql';那么形成的文件名格式如:D20180118T101433.sql,理论上是可以爆破的,于是写了一段Python脚本来尝试爆破。Py......
  • python - selenium + Edge
    1.安装相关库和下载相关文件pip3installseleniumpip3installmsedge-selenium-tools在https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/下载msedgedriver.exe,可在edge帮助查看当前edge的版本号,下载对应版本即可2.代码fromseleniumimportwe......
  • python 安装pip
    目录python安装pip下载get-pip.py脚本运行get-pip.py脚本pip使用python安装pip在安装Python库时,常用的工具是pip(Python包管理器)。如果你在使用Python时还没有安装pip,你可以按照以下步骤安装:下载get-pip.py脚本你可以从官方网站https://bootstrap.pypa.io/get-......