1.python数据结构-字典(dictionary)

# 字典对象(对应Java中Map)
# 包含0个或多个键值对(key:value pairs),键值对之间无序,且key唯一
# key:只能是不可变更的类型,如:strings、numbers、tuple(元组,当tuple内部包含可变更对象时,不可作为dict的key)


# 以下程序完成单词数量统计
sentence = "a a a aa aa aa aaa aaa aaa aaa a aa a a aaa"

# 方法一
word_dict = {}
for word in sentence.split():
    if word not in word_dict:
        word_dict[word] = 0
    word_dict[word] += 1
print('方法一')
print(word_dict)

# 方法二
word_dict1 = {}
for word in sentence.split():
    word_dict1.setdefault(word, 0)
    word_dict1[word] += 1
print('方法二')
print(word_dict1)

# 方法三
import collections as clt

word_dict2 = {}
word_dict2 = clt.defaultdict(int)
for word in sentence.split():
    word_dict2[word] += 1
print('方法三')
print(word_dict2)

# 遍历键值对(key:value pairs),下面两种遍历方式表明,items中第一个元素是key第二个元素是value
print('遍历字典')
print('方法一')
for key, value in word_dict.items():
    print(key, value)
print('方法二')
for value, key in word_dict.items():
    print(key, value)

tuple1 = (1, 1)
tuple2 = (1, (1, 1))
tuple3 = (1, (1, [1]))
word_dict[tuple1] = 55
word_dict[tuple2] = 56
# word_dict[tuple3] = 57   #由于tuple3中包含list(可变元素),故不能作为key

print(word_dict.keys())
print(word_dict.values())
print(word_dict.items())
print('打印字典数据')
print(word_dict)
del word_dict[(1, 1)]  # 删除元素
print('打印删除(1,1)之后的字典数据')
print(word_dict)
posted @ 2018-03-22 20:25  wjc920  阅读(179)  评论(0编辑  收藏  举报