【Python初级-6】字典

1、字典的基本情况是key:value,这样的一种键-值对模式,并且字典可存储的信息量几乎不受限制。通过访问键,来获取对应的值。键和值之间使用(:)分开。字典是用{}表示的,字典内的元素使用(,)分开。最简单的字典如下:

alien_0 = {‘color‘: ‘green‘, ‘point‘: 5}

这里‘color‘和‘point‘是一个键,‘green‘和5是一个值。

2、为了获取字典中某个键的值,可以直接访问该字典中的键:

>>> alien_0 = {‘color‘: ‘green‘}

>>> print(alien_0[‘color‘])

green

3、添加键值对:

>>> print(alien_0)

{‘color‘: ‘green‘}

>>> alien_0[‘x‘] = 0

>>> alien_0[‘y‘] = 100

>>> print(alien_0)

{‘x‘: 0, ‘y‘: 100, ‘color‘: ‘green‘}

注意了,字典是不关心排列顺序的,也就是说添加顺序和排列顺序是没有关系的。字典只关心键和值之间的关系。

4、使用字典来存储用户提供的数据或者在编写能自动生成大量键-值对的代码时,通常需要先定义一个空字典:

>>> alien_0 = {}

>>> alien_0[‘color‘] = ‘green‘

>>> alien_0[‘points‘] = 5

>>> print(alien_0)

{‘points‘: 5, ‘color‘: ‘green‘}

5、修改字典中的值:

>>> print(alien_0)

{‘points‘: 5, ‘color‘: ‘green‘}

>>> alien_0[‘points‘] = 6

>>> print(alien_0)

{‘points‘: 6, ‘color‘: ‘green‘}

就是把字典中的键对应新的值,就是修改字典中的键中的值。

6、删除键值对:

>>> print(alien_0)

{‘points‘: 6, ‘color‘: ‘green‘}

>>> del alien_0[‘points‘]

>>> print(alien_0)

{‘color‘: ‘green‘}

注意,删除时,减-值对是一起删除的。是永远消失,不是临时性的。

7、对于较长的字典,可以使用Python的缩进配合换行来实现优雅的键入字典的键值对:

>>> languages = {

...     ‘alex‘: ‘python‘,

...     ‘ruifeng‘: ‘c‘,

...     ‘johnny‘: ‘perl‘,

...     }

>>> print(languages)

{‘ruifeng‘: ‘c‘, ‘johnny‘: ‘perl‘, ‘alex‘: ‘python‘}

可以看到,字典中的键-值对都进行了缩进,并且在最后一个键-值对后加入了(,)。对于其它需要输入很长的内容,比如print()函数内需要输入的内容很长,可以在()内换行继续写,新行是需要进行缩进的。

8、遍历键-值对的特殊取法:

>>> print(my_friend_1)

{‘sex‘: ‘male‘, ‘age‘: ‘31‘, ‘city‘: ‘Shanghai‘, ‘name‘: ‘Cao Xiao Jun‘}

>>> for key, value in my_friend_1.items():

...     print("\nkey: " + key)

...     print("value: " + value)

...

key: sex

value: male

key: age

value: 31

key: city

value: Shanghai

key: name

value: Cao Xiao Jun

items()方法用于返回一个键-值对列表。之后分别把键存入key变量,值存入value变量。"\n"表示插入一个回车符号。注意,即使是遍历字典,也是不关注顺序的,因为字典的核心是键-值对的关联性。

9、以上是取键-值对,如果只需要取键,而不需要值时,则使用keys()方法:

>>> print(my_friend_1)

{‘sex‘: ‘male‘, ‘age‘: ‘31‘, ‘city‘: ‘Shanghai‘, ‘name‘: ‘Cao Xiao Jun‘}

>>> for key in my_friend_1.keys():

...     print("\nkey: " + key)

...

key: sex

key: age

key: city

key: name

如果省略keys()方法,即 for key in my_friend_1:,则默认取键,但是建议写,这样读起来容易理解。

10、字典的遍历是不会排序的,如果的确需要对输出进行排序,可以人工干预,使用sorted()函数:

>>> for thing in sorted(my_friend_1.keys()):

...     print(thing)

...

age

city

name

sex

11、如果需要遍历字典中的值,可以使用values()方法,它返回一个值列表,但是不包含键:

>>> print(my_friend_1)

{‘sex‘: ‘male‘, ‘age‘: ‘31‘, ‘city‘: ‘Shanghai‘, ‘name‘: ‘Cao Xiao Jun‘}

>>> for values in my_friend_1.values():

...     print(values)

...

male

31

Shanghai

Cao Xiao Jun

考虑到值有时候会有重复,使用set()函数,可以去除重复:

>>> print(my_friend_1)

{‘sex‘: ‘male‘, ‘new‘: 31, ‘name‘: ‘Cao Xiao Jun‘, ‘city‘: ‘Shanghai‘, ‘new_1‘: ‘31‘, ‘age‘: ‘31‘}

>>> for i in set(my_friend_1.values()):

...     print(i)

...

Cao Xiao Jun

male

Shanghai

31

31

12、将一系列字典存储在列表中,或者将列表作为值存储在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表,甚至在字典中嵌套字典。

#!/usr/bin/env python3

alien_0 = {‘color‘: ‘green‘, ‘points‘: 5}

alien_1 = {‘color‘: ‘yellow‘, ‘points‘: 10}

alien_2 = {‘color‘: ‘red‘, ‘points‘: 15}

aliens = [alien_0,alien_1,alien_2]

for alien in aliens:

print(alien)

这是一种典型的嵌套,把字典作为一个值,写入列表中,此时遍历列表,就是打印列表的每个元素,就是每个字典:

[[email protected] ex-python]# ./name_cases.py

{‘color‘: ‘green‘, ‘points‘: 5}

{‘color‘: ‘yellow‘, ‘points‘: 10}

{‘color‘: ‘red‘, ‘points‘: 15}

嵌套循环的一个例子:

#!/usr/bin/env python3

aliens = []

for alien_number in range(30):

new_alien = {‘color‘: ‘green‘, ‘points‘: 5, ‘speed‘: ‘slow‘}

aliens.append(new_alien)

for alien in aliens[:5]:

print(alien)

print("...")

print("Total number of aliens: " + str(len(aliens)))

其中,for alien_number in range(30):,就是表示循环30次。

这是一种特殊的写法,可以看到alien_number这个变量在接下来的语句中并没有出现,配合range(30)[也就是range(0,30)]函数,实现了循环30次的效果。

13、在字典中存储列表:

[[email protected] ex-python]# cat name_cases.py

#!/usr/bin/env python3

favorite_languages = {

‘jen‘: [‘python‘, ‘ruby‘],

‘sarah‘: [‘c‘],

‘edward‘: [‘ruby‘, ‘go‘],

‘phil‘: [‘python‘,‘haskell‘],

}

for name, languages in favorite_languages.items():

print("\n" + name.title() + "‘s favorite languages are:")

for language in languages:

print("\t" + language.title())

输出:

[[email protected] ex-python]# ./name_cases.py

Phil‘s favorite languages are:

Python

Haskell

Jen‘s favorite languages are:

Python

Ruby

Edward‘s favorite languages are:

Ruby

Go

Sarah‘s favorite languages are:

C

14、在字典中存储字典,但是这样做代码很可能很快复杂起来:

[[email protected] ex-python]# cat name_cases.py

#!/usr/bin/env python3

users = {

‘user_1‘: {

‘first‘: ‘alex‘,

‘last‘: ‘hou‘,

‘location‘: ‘dalian‘,

},

‘user_2‘: {

‘first‘: ‘johnny‘,

‘last‘: ‘zhu‘,

‘location‘: ‘shanghai‘,

},

}

for username, user_info in users.items():

print("\nUsername: " + username )

full_name = user_info[‘first‘] + " " + user_info[‘last‘]

location = user_info[‘location‘]

print("\tFull name: " + full_name.title())

print("\tLocation: " + location.title())

输出:

[[email protected] ex-python]# ./name_cases.py

Username: user_1

Full name: Alex Hou

Location: Dalian

Username: user_2

Full name: Johnny Zhu

Location: Shanghai

时间: 2024-08-29 08:06:25

【Python初级-6】字典的相关文章

python基础之字典及字符

python基础之字典及字符串处理 本节内容 字典介绍及内置方法 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者

python json模块 字典 输出中文

json.dumps({'text':"中文"},ensure_ascii=False,indent=2) python json模块 字典得到字符串,输出中文

python 元组和字典中元素作为函数调用参数传递

模式1.  def test1(*args): test3(*args) def test2(**kargs): test3(**kargs) def test3(a, b): print(a,b) test1(1,2) test2(a=1,b=2) 模式2.  def test4(a= ()): test6(*a) def test5(b = {}): test6(**b) def test6(a, b): print(a,b) test4((1, 2)) test5({'a':1,'b':2

Python基础知识---字典

现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典:  key --> value的映射关系,字典是无序性的,字典的key是不可变类型的,如int, str, float,tuple... 1.创建字典 (1)第一种方式创造字典,一次给全 >>> user = {'id': 1000, 'name': 'scd', 'password':'123'} >>&

Python<8>有关字典

Python中的字典是完全不同的东西,它们不是序列,没有顺序,只是一种映射.内部的元素以逗号分开,以大括 号包围.它们不是通过位置而是通过键来存储的,也具有可变性,可以就地的改变,增大或减小. 主要属性: <1>通过键而不是偏移量来读取 <2>任意对象的无序集合 <3>可变长.异构.任意嵌套 <4>属于可变映射 <5>对象引用表 常见操作 D={ }  空字典 'name' in D   成员存在测试 D.keys()     方法:键 D.va

Python中的字典详解

Python中的字典是python的一种数据结构,它的本质是key和value以及其对应关系的一种集合,一个key可以对应一个多个value.合理的使用字典能给我们编程带来很大的方便. -----python中的数据类型 -----python中的字符串操作 python3.0以上,print函数应为print(),不存在dict.iteritems()这个函数. 在python中写中文注释会报错,这时只要在头部加上# coding=gbk即可 #字典的添加.删除.修改操作dict = {"a&

python系列(四)python元组与字典

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 本博文目录: 一.元组 | 二.字典 | 三.字典的使用方法 前言:列表非常适合用于存储在程序运行期间可能变化的数据集.列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要.然而,有时候你需要创建一些列不可修改的元素,元组就可以满足你这样的需求.Python将不能修改的值称为不可变的,而不可变的列表就被称为元组. 正文部分:

python列表、字典、字符串常用操作

Python 列表.字典.字符串常用操作 1.字符串操作 字符串可以通过下标取值,但由于字符串是不可变变量,不可通过下标来修改值. str = 'lily terry mark' name[0]    #获取第1个字符串值 name[0:7]   #获取第1~7的字符串值 name[:7]   #缺省开始位置,默认从第1个元素开始取值 name[0:]   #缺省结束位置,默认到字符串末尾结束 字符串包含判断操作符:in .not in .is 'lily' in names 'lily' no

Python的映射——字典

Python的映射--字典 字典的简介 字典作为Python的一种容器,是不需要讲究排序的,所以字典并不属于序列的一种.这字典里存在键(key)和值(value).值是存储在键里,所以我们只要访问键就能得出值来.对于字典的基本操作有以下一种,最基本的还是字典的创建赋值, 访问,更新,删除. 1.字典的创建有三种方法,第一种是最常见的赋值,就是将一个字典直接赋值给变量,那么这个变量就是一个字典了.第二种的话就是使用dict()函数,可以直接将成对的序列转化为字典,这个方式会在下面详细讲解.第三种也

python入门14 字典dict

字典dict是无序的key:value格式的数据序列 #coding:utf-8 #/usr/bin/python """ 2018-11-11 dinghanhua 字典 """ '''dict 无序的key:value组合 key要是不可变类型,如数字.字符串.元组 key不可重复,重复的会被最后一个覆盖 ''' dict_id = {'1':'python','2':'java','3':'javascript','4':'go','2':