找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
python中的元组
1.定义:元组(tuple)是Python中常用的一种数据结构。元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。元组是'写保护'的,即元组中元素作为一个整体,创建后不能再做任何修改操作

2.元组表达符为:tuple=()
3.元组的定义tuple1=(1,2,3)
注意:当元组只有一个元素时,后面要加逗号,如:tuple1=(1,)
例子1:
tuple1=(1,'26','test',[99,'test'])
print(tuple1)   # 输出:(1, '26', 'test', [99, 'test'])
print(type(tuple1))  # <class 'tuple'>
例子2:
tuple2='88'   
print(tuple2)   # 输出:88
print(type(tuple2))  # <class 'str'>
例子3:
tuple3=('88',) # 当元祖只有一个元素时,后面要加逗号
print(tuple3)   # 输出:('88',)
print(type(tuple3))  # <class 'tuple'>
常见操作
1)想要修改元祖本身的数据:先把元祖转换为可变的数据类型,修改后再转换回元祖
1.1)通过list()强制把元祖转换为列表
例子:
tuple1=(1,'26','test',[99,'test'])
list1=list(tuple1)
print(list1) # 输出:[1, '26', 'test', [99, 'test']]
print(type(list1))  # <class 'list'>
1.2)通过tuple() 把列表转换为元祖
例子:
list1=[1, '26', 'test', [88, 'test']]
tuple1=tuple(list1)
print(tuple1)  # 输出: (1, '26', 'test', [88, 'test'])
print(type(tuple1))  # <class 'tuple'>

2)修改元祖中的列表元素
例子:
tuple1=(1,'26','test',[99,'test'])
print(tuple1[3][0])  # 输出:99
tuple1[3][0] = 'duoceshi' # 修改元祖中的列表元素
print(tuple1)  # 输出:(1, '26', 'test', ['duoceshi', 'test'])

元组和列表的区别
相同:
a、都是序列类型(有序)的容器对象,可以存放任何类型的数据
b、支持切片、迭代等操作
不同:
a、list 是可变的对象,元组tuple是不可变的对象
b、tuple不可变,所以使用tuple可以使代码更安全

Python的字典
1.定义:
1)字典(dict)是另一种可变容器模型,且可存储任意类型对象。字典的每个键值key:value对用冒号 : 分割,每个键值对之间用逗号分割,整个字典包括在大括号 {} 中
2)字典同时是无序,字典都是以键值对的形式存在,先键后值,键是唯一的,值且不唯一
2.字典表达符:{}
3.字典的定义方式:
方式一:通过{}直接定义: 字典名={键名:值,键名:值,键名:值...}
dict1={'name':'duoceshi','age':18}
方式二:通过dict()方法把列表转换为字典:
列表名=[(键名,值),(键名,值)..]   字典名=dict(列表名)
dict1 = [('a',1),('b',2),('c',3)]
dict2 = dict(dict1)
字典中常见的函数
1)字典的赋值操作:如果所写的键不存在,则是添加一个新的键,并赋值;如果存在,则是覆盖掉之前的值
例子1:
dict1 = {'name': 'xiaomeng', 'age': 18}
dict1['class']=2026  # 添加一个键class,赋值2026
print(dict1) # 输出:{'name': 'xiaomeng', 'age': 18, 'class': 2026}
例子2:
dict1 = {'name': 'xiaomeng', 'age': 18}
dict1['name']='duoceshi'
print(dict1) # 输出:{'name': 'duoceshi', 'age': 18}

2)取字典中所有的键 ===> for循环遍历
例子:
dict2 = {'name': 'xiaomeng', 'age': 18,'class':2026}
for i in dict2:    # 完整是 : for i in dict2.keys(),因为key是唯一的,所以可不写
   print(i)   # 输出:name,age,class

3)取字典中所有的值  ===> for循环遍历
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
for i in dict1.values():
   print(i)  # 输出:xiaomeng,18,2026

4)通过键取对应的值  print(字典名[键名])
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
print(dict1['name'])  # 输出:xiaomeng

5)添加键值对 setdefault(键名,值)
例子:
dict1 = {'name': 'xiaomeng', 'age': 18}
dict1.setdefault('class',2026)
print(dict1)  # 输出:{'name': 'xiaomeng', 'age': 18, 'class': 2026}

6)根据键删除键值对,键不存在,值就不存在: del 字典名[键名]
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
del dict1['name']
print(dict1)  # 输出:{'age': 18, 'class': 2026}

7)删除字典 del 字典名
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
del dict1
print(dict1) # 该字典已经被删除,因此查询不到,报错

8)通过for循环遍历字典,拿到所有的键和值
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
for i in dict1:  # 变量i 就是 字典dict1里面所有的数据
   print(i,dict1)  # i 拿取的是键,dict 拿取的是值

9)for循环+items() 遍历字典,拿到所有的键和值
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
for k,v in dict1.items():
   print(k,v)  # k是键,v是值
10)pop函数:删除指定的键,返回删除的键的值 pop(键名)
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
dict1.pop('name')  #删除键
print(dict1) # 输出:{'age': 18, 'class': 2026}
print(dict1.pop('age')) # 输出:18  返回被删除的键的值
11)clear() 清空字典所有的项
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
dict1.clear()
print(dict1)  # 输出:{}
12)get方法,通过键获取值,当键不存在时,返回None   get(键名)
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
print(dict1.get('name'))  # 输出:xiaomeng
print(dict1.get('name1'))  # 输出:None
13)fromkeys函数 : 可以给具体的键指定值,返回一个新的字典。
       fromkeys([键名],值) ==> 键名可以写多个且可以是不存在的键名,值只能写一个
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
print({}.fromkeys(['name','age']))  # 没有指定默认值,输出:{'name': None, 'age': None}
print({}.fromkeys(['name','age'],'duoceshi'))  # 指定默认值,输出:{'name': 'duoceshi', 'age': 'duoceshi'}
14)has_key函数:在Python3中没有这个函数了 ===>  __contains__函数 检查字典是否有指定的键,有返回True,没有返回False
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
print(dict1.__contains__('name'))   # 输出:True
15)popitem函数:随机返回并删除字典中的键值对(一般删除末尾对),如果字典已经为空,却调用了此方法,就报出KeyError异常
例子:
dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026}
print(dict1.popitem())  # 返回被删除的键值对,输出:('class', 2026)
print(dict1) # 输出:{'name': 'xiaomeng', 'age': 18}
16)update函数:利用一个字典更新另一个字典,如果更新的键在原来的字典中存在,则会覆盖键原来的值
例子:
dict1={'name':'xiaomeng','age':18}
dict2={'sex':1,'age':2026}  # sex 性别 用1和0表示 <== 速度更快
dict1.update(dict2)  # dict1 使用了update这个方法,把dict2的数据更新进来
print(dict1)  # 输出:{'name': 'xiaomeng', 'age': 2026, 'sex': 1}
Python的集合
1.定义:集合 分为 可变集合set 和 不可变集合frozenset,是 一个无序的不重复的序列,集合有一个重要的功能:去重
例子:
test='hello'
a=set(test)
print(a) # 输出:{'o', 'e', 'l', 'h'}  去重了l,且每次输出顺序都不一致
可变集合set
1)clear() 清除
例子:
test='hello'
a=set(test)
a.clear()
print(a)  # 输出:set()
2)pop函数:删除最开始的字符,由于每次都是无序排列,因此无法判断删除哪一个字符
例子:
test='hello'
a=set(test)
a.pop()
print(a)
3)remove函数:移除(删除)指定的字符
例子:
test='hello'
a=set(test)
a.remove('o')
print(a)  # 输出:{'e', 'l', 'h'}
4)add函数:添加元素
例子:
test='hello'
a=set(test)
a.add(888)
print(a)  # 输出:{'e', 'h', 'l', 888, 'o'}
print(type(a)) # <class 'set'>
5)for循环遍历集合
例子:
test='hello'
a=set(test)
for i in a:
   print(i)
   print(type(i)) # <class 'str'>
3.不可变集合frozenset
1)copy函数:复制
test='hello'
a=frozenset(test)
b=a.copy()
print(b)  # 输出:frozenset({'o', 'h', 'e', 'l'})  每次输出顺序不一致
Python中的数据类型(结构):字符串、列表、元祖、字典、集合
不可变:元祖、不可变集合frozenset
可变:字符串、列表、字典、可变集合set
无序:字典、集合
有序:列表、元祖




分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册