Python学习——Task05

Task05——字典

一、字典
1、可变类型与不可变类型
有两种方法可以判断:
1.麻烦方法:用 id(X) 函数,比较操作前后的 id ,如果不一样,则 X 不可变,如果一样,则 X 可变
2.便捷方法:用 hash(X) ,只要不报错,为不可变,反过来就可变
2、 字典
字典是无序的键:值( key:value )对集合,键必须是互不相同的(在同一个字典之内)
例如:

x={'name':'小明','age':18,'id':'001'} #创建
y={'color':'green','points':5} #创建
print(x,type(x))
print(y,type(y))

结果:
在这里插入图片描述

#访问字典
x={'name':'小明','age':18,'id':'001'} 
y={'color':'green','points':5} 
print(x['name'])
print(y['points'])

结果:
在这里插入图片描述
注意:如果取的键值在字典中不存在,会直接报错
创建字典的其他方法:
通过构造函数 dict 来创建字典

  1. dict() -> 创建一个空的字典
    例如:
dic = dict()
dic['a'] = 1 #创建
dic['b'] = 2
dic['c'] = 3
print(dic)
dic['a'] = 11#修改
print(dic)
dic['d'] = 4#增加
print(dic)

结果:
在这里插入图片描述
2. 用dict(mapping)函数

dict= dict([('name', '小明'), ('num', 11), ('score', 98)])
print(dict) 

结果:
在这里插入图片描述
3.dict.fromkeys(seq[, value]) 用于创建一个新字典,以序列 seq 中元素做字典的键, value 为字典所有键对应的初始值
例如:

seq = ('name', 'age', 'num','score')
dic1 = dict.fromkeys(seq)
print("新的字典为 : %s" % str(dic1)) 
# 新的字典为 : {'name': None, 'age': None, 'sex': None}
dic2 = dict.fromkeys(seq, 10)
print("新的字典为 : %s" % str(dic2)) 
# 新的字典为 : {'name': 10, 'age': 10, 'sex': 10}
dic3 = dict.fromkeys(seq, ('小马', '8', 13,97))
print("新的字典为 :" +str(dic3))

结果:
在这里插入图片描述
常用字典函数

1.dict.keys() 返回一个可迭代对象,可以使用 list() 来转换为列表,列表为字典中的所有键
2. dict.values() 返回一个迭代器,可以使用 list() 来转换为列表,列表为字典中的所有值
3. dict.items() 以列表返回可遍历的 (键, 值) 元组数组
4. dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回默认值
5. dict.pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。 key 值必须给出。若 key 不存在,则返回 default 值。
6. del dict[key] 删除字典给定键 key 所对应的值
7. dict.clear() 用于删除字典内所有元素
8. dict.copy() 返回一个字典的浅复制

例如:

x={'name':'小明','age':18,'id':'001','score':99}
print(x)
print(x.keys())
print(x.values())
print(x.items())
if 'name' in x:
    print('True')
del x['age']
print(x)

结果:
在这里插入图片描述
练习题:
1.字典基本操作

dic = {
 'python': 95,
 'java': 99,
 'c': 100
 }
print(dic)
print(len(dic))
dic['java']=98
print(dic)
del dic['c']
print(dic)
dic['php']=90
print(dic)
print(dic.keys())
print(dic.values())
if 'javascript' in dic:
    print('True')
else:
    print('False')
x=dic.values()
print(sum(x))
print(max(x))
dic1 = {'php': 97}
dic['php']=97
print(dic)

结果:
在这里插入图片描述
2.字典中的value

三、集合
集合也是一组 key 的集合,但不存储 value 。由于 key 不能重复,所以在集合中,没有重复的 key 。

例如:

x={1,2,3,4,5}
y={'a','b','c','d','e','f'}
print(x,type(x))
print(y,type(y))

结果:
在这里插入图片描述

集合的创建
例如:

s=set()
s.add(0)
s.add(2)
s.add(4)
s.add(6)
print(s)

结果:
在这里插入图片描述
集合的两个特点:无序 (unordered) 和唯一 (unique)

thisset = set(['Google', 'Baidu', 'Tianmao','Taobao'])
print(len(thisset)) #求集合的长度

结果:
在这里插入图片描述
常用函数
1.len( )求集合的长度
2. set.add(elmnt) 用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作
3. set.update(set) 用于修改当前集合,可以添加新的元素或集合到当前集合中
4. set.remove(item) 用于移除集合中的指定元素。如果元素不存在,则会发生错误
5. set.discard(value) 用于移除指定的集合元素
6. set.intersection(set1, set2 …) 返回两个集合的交集
7. set.union(set1, set2…) 返回两个集合的并集
8. set.difference(set) 返回集合的差集
9. set.issubset(set) 判断集合是不是被其他集合包含,如果是则返回 True,否则返回 False
10.set.isdisjoint(set) 用于判断两个集合是不是不相交,如果是返回 True,否则返回 False

例如:

x={1,2,3,4,5,6,7,8,9}
y={'a','b','c','d','e','f','g'}
x.add(10)
print(x)
y.add('h')
print(y)
x.remove(5)
print(x)
z={2,4,6,8,12,14,16}
a=x.intersection(z)
print(a)
a=x.union(z)
print(a)

结果:
在这里插入图片描述
集合的转换

se = set(range(4))
li = list(se)
tu = tuple(se)
print(se, type(se)) 
print(li, type(li)) 
print(tu, type(tu))

结果:
在这里插入图片描述
四、序列
常用函数
1.list(sub) 把一个可迭代对象转换为列表
2.tuple(sub) 把一个可迭代对象转换为元组
3.str(obj) 把obj对象转换为字符串
4. len(s) 返回对象(字符、列表、元组等)长度或元素个数
5. max(sub) 返回序列或者参数集合中的最大值
6. min(sub) 返回序列或参数集合中的最小值
7. sum(iterable[, start=0]) 返回序列 iterable 与可选参数 start 的总和
8. sorted(iterable, key=None, reverse=False) 对所有可迭代的对象进行排序操作

例如:

x='123456789'
y=[]
for i in x:
    a=int(i)
    y.append(a)
print(list(x))# 转换为列表
print(tuple(x)) #转换为元组
print(str(x)) #转换为字符串
print(len(x)) #求长度
print(max(x)) #最大值
print(min(x)) #最小值
print(sum(y)) #求和
print(sorted(x,reverse=True))

结果:
在这里插入图片描述

练习题:
1.可以用max()函数和min()函数找出序列中的最⼤、⼩值
2.sort() 函数只适用于列表排序,而sorted()函数适用于任意可以迭代的对象排序,sort() 函数排序会改变原有的待排序列表,而sorted()函数则不会改变
3.x=list(range(1,101)) print(sum(x))
结果:
在这里插入图片描述
4.求列表 [2,3,4,5] 中每个元素的立方根

y=[2,3,4,5]
a=[(i**3) for i in y ]
print(a)

结果:
在这里插入图片描述
5.[‘x’,‘y’,‘z’] 和 [1,2,3] 转成 [(‘x’,1),(‘y’,2),(‘z’,3)] 的形式

x=['x','y','z']
y=[1,2,3]
z=zip(x,y)
print(list(z))

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,sort_index()函数是pandas库DataFrame数据对象的一个方法,用于根据行标签和列名称对数据进行排序。函数的语法如下:sort_index(axis=0, level=None, ascending=True, inplace=False, kind="quicksort", na_position="last", sort_remaining=True, ignore_index=False)。\[1\] 另外,pandas的DataFrame数据对象还有另一种排序方式,即根据指定某一列的值进行排序,这可以通过sort_values()函数实现。\[2\] 需要注意的是,sort_index()函数是根据行标签和列名称进行排序,而sort_values()函数是根据某一列的值进行排序。 除了pandas库的排序函数,还可以使用其他排序算法,比如冒泡排序和选择排序。冒泡排序是一种简单的排序算法,它通过比较相邻元素的大小并交换位置来实现排序。\[3\]选择排序是另一种常见的排序算法,它通过每次选择最小的元素并将其放置在已排序部分的末尾来实现排序。 希望以上信息对您有所帮助! #### 引用[.reference_title] - *1* *2* [python函数sort_index 和 sort_values排序](https://blog.csdn.net/lss1990lss/article/details/119559207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [蓝桥杯python组————笔记整理](https://blog.csdn.net/qq_46639904/article/details/124023255)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值