python字典

字典的特性

1.字典的元素是键值对,通过键来访问值,所以字典中的键不能重复,且不可变

2.字典不支持索引和切片,通过键来查询值

3.字典是无序的对象集合,列表是有序的对象集合,两者区别在于,字典中的元素是通过键来存取的

4.字典是可变的,可以任意嵌套

字典的创建与删除

字典用 {} 标识

键与值用:隔开,键值对之间用 , 隔开

subjects={'chinese'=88,'math'=90,'english'=98}

元组可以作为字典的键,但列表不可以,因为字典要求键必须是不可变类型,但列表是可变类型。

 内置函数dict()来创建字典

键与值用:隔开,键值对之间用,隔开
subjects1=[('math',90),('chinese',89)]
subjects2=[['math',90],['chinese',89]]

dict1=dict(subjects1)
dict2=dict(subjects2)
print(dict1)
print(dict2)

dict3=dict(math=9,chinese=90)#通过指定参数创建字典,键不用加''引号
print(dict3)

keys=['math','chinese','english']
values=[99,89,79]
dict4=dict(zip(keys,values))#利用zip函数
print(dict4)

上面代码中zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表

如下:

x=[1,2,3]
y=['a','b','c']
zipped=zip(x,y)
print(zipped)
print(list(zipped))

#<zip object at 0x000001836D1A3EC0>
#[(1, 'a'), (2, 'b'), (3, 'c')]

 del命令可以删除字典,或者用clear()方法清空字典中的所有元素,字典变成空字典

访问字典

通过键访问值:

subject={'math':90,'chinese':89}
print(subject['math'])

#90

通过get()方法获取指定键的值

subject={'math':90,'chinese':89}

print(subject.get('math'))

 通过items()获取键值对列表,keys()方法获取键列表,values()获取值列表

subject={'math':90,'chinese':89,'english':78}

items=subject.items()
print(type(items))
print(items)
print(list(items))
#通过list()函数将其变成列表

keys=subject.keys()
print(keys)

values=subject.values()
print(values)

<class 'dict_items'>
dict_items([('math', 90), ('chinese', 89), ('english', 78)])
[('math', 90), ('chinese', 89), ('english', 78)]
dict_keys(['math', 'chinese', 'english'])
dict_values([90, 89, 78])

 for循环对items()返回的结构进行遍历

for keys,values in dict1.items:
   print(keys,values)

for items in dict1:
    print('items',dict1[items])

添加,修改和删除字典元素

字典是可变序列

可以直接添加,修改,注意 键具有唯一性

subject={'math':90,'chinese':89,'english':78}

subject['art']=90
subject['math']=89
del subject['chinese']
print(subject)


#{'math': 89, 'english': 78, 'art': 90}

对象的update()方法,用一个字典所包含的键值对来更新已有的字典。

在执行update()方法时,如果被更新的字典中包含对应的键值对,那么原值会被覆盖,若不包含则键值对会被添加进去。如下

subject={'math':90,'chinese':89,'english':78}

subject.update({'chinese':78,'art':79,'english':70})
print(subject)

#{'math': 90, 'chinese': 78, 'english': 70, 'art': 79}

字典推导式

{表达式 for  迭代变量 in 可迭代对象 [ if条件表达式] }

wordlist=['aaa','bbb','ccc']
worddict={key:len(key) for key in wordlist}
print(worddict)

subject=['math','chonese','english']
score=[90,99,89]
dict1={i:j for i,j in zip(subject,score)}
print(dict1)

#交换现有字典中各键值对的键和值
dict2={i:j for j,i in zip(subject,score)}


{'aaa': 3, 'bbb': 3, 'ccc': 3}
{'math': 90, 'chonese': 99, 'english': 89}

相关推荐

  1. python字典

    2024-05-09 07:08:05       33 阅读
  2. python字典

    2024-05-09 07:08:05       24 阅读
  3. python字典

    2024-05-09 07:08:05       31 阅读
  4. Python字典

    2024-05-09 07:08:05       24 阅读
  5. Python-字典详解

    2024-05-09 07:08:05       56 阅读
  6. Python课堂11——字典

    2024-05-09 07:08:05       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-09 07:08:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-09 07:08:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-09 07:08:05       82 阅读
  4. Python语言-面向对象

    2024-05-09 07:08:05       91 阅读

热门阅读

  1. 个人消息22222222222222

    2024-05-09 07:08:05       29 阅读
  2. Linux(Ubuntu)安装CGAL(非root)

    2024-05-09 07:08:05       37 阅读
  3. element-ui select 下拉框做成下拉加载更多

    2024-05-09 07:08:05       37 阅读
  4. ubuntu arm64 阿里云源

    2024-05-09 07:08:05       36 阅读
  5. Ubuntu 22.04 下 Pycharm 卸载

    2024-05-09 07:08:05       26 阅读
  6. STM32中的Systick的使用

    2024-05-09 07:08:05       34 阅读
  7. 初识Node.js-回调函数(详解回调函数使用)

    2024-05-09 07:08:05       38 阅读
  8. 从PostgreSQL同步数据到Elasticsearch

    2024-05-09 07:08:05       31 阅读
  9. 智能BI(后端) -- 智能分析业务

    2024-05-09 07:08:05       34 阅读