Python字典基本操作

1 字典创建

(1) 直接创建

mydict1={'a':[1,2,3,4],'b':'adsa'}

In [1]:type(mydict1)
Out[1]: dict

(2)通过dict先建立空字典,再添加值

mydict2=dict()
mydict2['one']='sum'

In [9]:mydict2
Out[9]: {'one': 'sum'}

(3) 通过列表创建字典

#方法1:通过zip函数(两个单独列表)
list1=list('abcde')
list2=list(range(6))
list1
Out[32]: ['a', 'b', 'c', 'd', 'e']
list2
Out[33]: [0, 1, 2, 3, 4, 5]
mydict4=dict(zip(list1,list2))
mydict4
Out[35]: {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4}

#方法2:嵌套列表
arr1=np.arange(0,10).reshape(5,2)
arr1
Out[42]: 
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])
mydict5=dict(arr1)
mydict5
Out[44]: {0: 1, 2: 3, 4: 5, 6: 7, 8: 9}

#方法3:嵌套列表(使用for循环)
mydict6={}
for i in arr1:
    mydict6[i[0]]=i[1]
mydict6
Out[55]: {0: 1, 2: 3, 4: 5, 6: 7, 8: 9}


2 字典索引及常用操作

(1)知道键名称,需要索引值。直接是用键名索引

In [10]:mydict1
Out[10]: {'a': [1, 2, 3, 4], 'b': 'adsa'}

In [11]:mydict1['b']
Out[11]: 'adsa'

(2) 判断字典长度(键值对有多少对)

In [12]:len(mydict1)
Out[12]: 2

(3)判断键是否在字典中(只能判断键,不能判断值)

In [13]:'a' in mydict1
Out[13]: True

In [14]:'c' in mydict1
Out[14]: False

(4) 判断值是否在字典中

In [15]:vals=mydict1.values()

In [16]:'adsa' in vals
Out[16]: True

(5) 通过值查找键

#方法1:通过对值位置的索引,找出键
In [22]:'list(mydict1.keys())[list(mydict1.values()).index('adsa')]
Out[22]: 'b'

#方法2:先反转字典(交换键值关系),再通过索引找出键【当值存在列表等类型时,此方法不可行】
mydict3={v:k for k,v in mydict1.items()}
mydict3['adsa']

3 使用字典进行词频统计

#可以对单词,列表数据进行统计
#字典频率统计
def histcount(sth):
    ct=dict()
    for item in sth:
        if item not in ct:
            ct[item]=1
        else:
            ct[item]+=1
    return ct
#使用get简化
def histct2(sth):
    ct=dict()
    for item in sth:
        ct[item]=ct.get(item,0)+1
    return ct

你可能感兴趣的:(Python字典基本操作)