Python 编程/字典
外观
Python 中的字典是通过键而不是索引访问的无序值的集合。键必须是可散列的:整数、浮点数、字符串、元组和冻结集合是可散列的。列表、字典和除冻结集合以外的集合不可散列。字典早在 Python 1.4 中就已存在。
Python 中的字典概述
dict1 = {} # Create an empty dictionary
dict2 = dict() # Create an empty dictionary 2
dict2 = {"r": 34, "i": 56} # Initialize to non-empty value
dict3 = dict([("r", 34), ("i", 56)]) # Init from a list of tuples
dict4 = dict(r=34, i=56) # Initialize to non-empty value 3
dict1["temperature"] = 32 # Assign value to a key
if "temperature" in dict1: # Membership test of a key AKA key exists
del dict1["temperature"] # Delete AKA remove
equalbyvalue = dict2 == dict3
itemcount2 = len(dict2) # Length AKA size AKA item count
isempty2 = len(dict2) == 0 # Emptiness test
for key in dict2: # Iterate via keys
print (key, dict2[key]) # Print key and the associated value
dict2[key] += 10 # Modify-access to the key-value pair
for key in sorted(dict2): # Iterate via keys in sorted order of the keys
print (key, dict2[key]) # Print key and the associated value
for value in dict2.values(): # Iterate via values
print (value)
for key, value in dict2.items(): # Iterate via pairs
print (key, value)
dict5 = {} # {x: dict2[x] + 1 for x in dict2 } # Dictionary comprehension in Python 2.7 or later
dict6 = dict2.copy() # A shallow copy
dict6.update({"i": 60, "j": 30}) # Add or overwrite; a bit like list's extend
dict7 = dict2.copy()
dict7.clear() # Clear AKA empty AKA erase
sixty = dict6.pop("i") # Remove key i, returning its value
print (dict1, dict2, dict3, dict4, dict5, dict6, dict7, equalbyvalue, itemcount2, sixty)
字典可以直接创建,也可以从序列转换。字典用大括号括起来,{}
>>> d = {'city':'Paris', 'age':38, (102,1650,1601):'A matrix coordinate'}
>>> seq = [('city','Paris'), ('age', 38), ((102,1650,1601),'A matrix coordinate')]
>>> d
{'city': 'Paris', 'age': 38, (102, 1650, 1601): 'A matrix coordinate'}
>>> dict(seq)
{'city': 'Paris', 'age': 38, (102, 1650, 1601): 'A matrix coordinate'}
>>> d == dict(seq)
True
此外,字典可以通过压缩两个序列轻松创建。
>>> seq1 = ('a','b','c','d')
>>> seq2 = [1,2,3,4]
>>> d = dict(zip(seq1,seq2))
>>> d
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
字典的操作有些独特。切片不受支持,因为项目没有固有的顺序。
>>> d = {'a':1,'b':2, 'cat':'Fluffers'}
>>> d.keys()
['a', 'b', 'cat']
>>> d.values()
[1, 2, 'Fluffers']
>>> d['a']
1
>>> d['cat'] = 'Mr. Whiskers'
>>> d['cat']
'Mr. Whiskers'
>>> 'cat' in d
True
>>> 'dog' in d
False
您可以使用主字典的 update 方法来合并两个字典。请注意,update 方法会在元素冲突时合并现有元素。
>>> d = {'apples': 1, 'oranges': 3, 'pears': 2}
>>> ud = {'pears': 4, 'grapes': 5, 'lemons': 6}
>>> d.update(ud)
>>> d
{'grapes': 5, 'pears': 4, 'lemons': 6, 'apples': 1, 'oranges': 3}
>>>
del dictionaryName[membername]
编写一个程序,该程序
- 要求用户输入一个字符串,然后创建以下字典。值是字符串中的字母,相应的键是字符串中的位置。 https://docs.pythonlang.cn/2/tutorial/datastructures.html#looping-techniques
- 用值 "Pie" 替换键为整数 3 的条目。
- 要求用户输入一个数字字符串,然后打印出与这些数字对应的值。