字典

  • Q:什么是字典
  • A:字典是一系列的键-值对
# 下面就是一个字典
alien_0 = {"color":"green","point":5}

  • Q:访问字典中的值
  • A:依次指定字典名和放在[ ]里面的键
alien_0 = {"color":"green","point":5}
print(alien_0["color"])
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
green

  • Q:添加字典中的键-值对
  • A:重新赋值
alien_0 = {"color":"green","point":5}
print(elien_0)
alien_0["x_position"] = 0
alien_0["y_position"] = 25
print(ailen_0)
---------------------------------------------------------------------------------------------------------------------------------
{"color":"green","point":5}
{"color":"green","point":5,"y_position":25,"x_position":0}
# 注意键值对的排列顺序和添加顺序无关

  • Q:修改字典中的值
  • A:重新赋值
# 下面是一个外星人移动的例子
alien_0 = {"x_position":0,"y_position":25,"speed":"medium"}
print("Original x_position:" + str(alien_0["x_position"])

# 向右移动外星人
# 根据外星人当前速度决定它将移动的多远
if alien_0["speed"] == "slow":
    x_increment = 1 
elif alien_0["speed"] == "medium":
    x_increment = 2
else:
    x_increment = 3

#新位置等于老位置加上增量
alien_0["x_position"] = alien_0["x_position"] + x_increment
print("New x_position: " + str(alien_0["x_position"]))

  • Q:删除键值对
  • A:del 语句
alien_0 = {"color":"green","point":5}
print(elien_0)

del alien_0["color"]
print(alien_0)
# 注意 删除的键值对永远的消失了

  • Q:遍历字典
  • A:
    1. 遍历所有的键值对   --->.items()方法
    2. 遍历所有的键          --->.key()方法
    3. .按顺序遍历所有的键      --->sorted()函数 + .key()方法
    4. .遍历所有的值               --->.values方法
# 1下面是遍历所有的键值对的例子
favorite_language = {
                    'jen':'python',
                    'sarah':'c',
                    'edward':'rudy',
                    'phil':'python',
                    }

for name,language in favorite_language.items():
    print(
            name.title()+ "'s favorite language is " +
            language.title() + "."
         )
# .items() 方法是返回一个键值对列表
# 即使遍历字典时,键值对的返回顺序也与存储顺序不同


# 2下面是遍历字典的所有键的例子
favorite_language = {
                    'jen':'python',
                    'sarah':'c',
                    'edward':'rudy',
                    'phil':'python',
                    }

for name in favorite_language.keys():
    print(name.title())
# 这里的.key()方法也是提取字典的所有键到一个列表中
# 遍历字典的时候会默认遍历所有的键 所以上面可以替换成
# for name in favorite_language:

# 2另一个例子,我们像前面一样遍历字典中的名字,但在名字为指定朋友的名字时,打印一条消息
favorite. _languages = {
                        'jen':'python',
                        'sarah':'C',
                        'edward':'Iuby',
                        'phil':'python',
                        }

friends = ['phil','sarah']
for name in favorite.languages.keys():
    print(name. title())
if name in friends:
    print(
            "Hi" + name.title() +
            ", I see your favorite language is " +
            favorite_ 1anguages [name].tit1e() + "!"
         )

# 2你还可以使用keys()确定某个人是否接受了调查。下面的代码确定Erin是否接受了调查的一个例子:
favorite_languages = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
if 'erin' not in favorite_languages.keys():
    print("Erin, please take our poll!")
--------------------------------------------------------
Erin, please take our poll!


# 3下面是按顺序遍历字典中的所有的键的例子
favorite_languages = {
            'jen': 'python',
            'sarah': 'c',
            'edward': 'ruby',
            'phil': 'python',
}
for name in sorted(favorite_languages.keys()):
    print(name.title() + ", thank you for taking the poll.")
--------------------------------------------------------
Edward, thank you for taking the poll.
Jen, thank you for taking the poll.
Phil, thank you for taking the poll.
Sarah, thank you for taking the poll.
#调用函数sorted()对keys列表进行排列


# 4遍历列表中的所有的值的例子
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print("The following languages have been mentioned:")
for language in favorite_languages.values():
    print(language.title())
--------------------------------------------------------
The following languages have been mentioned:
Python
C
Python
Ruby

# 4使用集合set()去除重复项
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print("The following languages have been mentioned:")
for language in set(favorite_languages.values()):
    print(language.title())
--------------------------------------------------------
The following languages have been mentioned:
Python
C
Ruby
原文地址:https://www.cnblogs.com/goodhelper007/p/dictionary.html