Python中还存在一种数据结构,就是字典,这也是在R中没有见过的,也有可能只是我没有见过,有意思的地方就是字典可以直接通过名字来引用值。字典通常是以“键(key):值(value)”的方式存在,多个键之间用逗号隔开,且没有既定的顺序。键可以是数字、字符串或者元组,但是不能重复。
字典能够通过键轻松查找到其对应的值,而不用事先知晓其位置。
ages = {'Li':31, 'Ming':24, 'He':54}
print(ages['He'])
字典的创建还可以使用dict函数进行,例如:
g = [('Li', 'F'), ('Ming', 'F'), ('He', 'M')]
gender = dict(g)
print (gender)
#结果如下:
{'Li': 'F', 'He': 'M', 'Ming': 'F'}
或者:
gender = dict(Li = 'F', Ming = 'F', He = 'M')
字典的基本操作包括:
len(d):字典中项(键-值)的个数;
d[k] = v:将值v关联到键k上,若键k不存在,可自动添加,列表则不可直接通过位置赋值添加;
del d[k]:删除键为k的项;
k in d:检查字典中是否存在键为k的项;
%(k)s:字典的格式化字符,k代表键,只要给出的键在字典中存在,常用语模版系统;
d.clear():删除字典中所有项,有意思的是如果删除一个字典的项,其他与其关联的字典中的项也会被删除;
d.copy():复制字典,也称为浅复制,若某个值被原始修改(如d.remove()),原始字典也会改变;
d.deepcopy():深复制,避免上述问题;
d.fromkeys(['key1','key2'...]):使用给定的键创建新的字典,每个键默认对应None,也可更改;
d.get('key'):获取键对应的值,但是如果键不存在也不会出错,适合实际应用;
d.has_key('key'):返回T或者F,查找是否存在特定的键;
d.pop(key):获得键对应的值,并将对应的项删除;
d.popitem():随机弹出一个项,类似于list.pop(弹出最后一个元素),但是字典没有顺序,所以是随机的项;
d.setdefault(key, default):这个功能比较有意思,在字典中没有给定键时,设置其默认值(不指定即为None),如果字典中存 在给定键,则返回其对应值,且不改变字典;
d.updata(d2):利用一个字典更新另一个字典。