1. 程式人生 > >python(dict字典相關知識以及小例子:生成一個列表,存放100個隨機整數,找出出現次數最多的數字)

python(dict字典相關知識以及小例子:生成一個列表,存放100個隨機整數,找出出現次數最多的數字)

一、什麼是字典?

#字典的使用
#子字典是一個容器類,可以用來儲存資料
#列表儲存資料特點:1、有序的 2、每一個都有一個索引,通過索引可以對資料進行查詢,修改,刪除

#字典儲存資料: key:value(鍵值對)
#key 必須是唯一不可變的,一般使用字串作為字典中的key,也可使用數字等不可變型別的值。如果有多個相同key的情況,保留最後一個key對應的值
#字典中儲存的資料是沒有順序的
dict_1 = {'name':'zhangsan','age':22,'phone':110,'sex':'男'}
二、字典取值方法
#1.根據key取出字典中的值
# name = dict_1['name']
# print(name)
#2.get(key,default)函式 獲取字典中對應key值,如果key不存在,取預設值。若存在,取出對應結果
name = dict_1.get('name','0')
print(name)
#1. 獲取字典中所有的key
keys = dict_1.keys()
#獲取keys型別
# print(type(keys))
#取出所有的keys
for key in keys:
    #根據key取出對應的值
    value = dict_1[key]
    print('%s:%s'%(key,value))
#2.獲取字典中所有的value
values = dict_1.values()
#for迴圈取出所有的value
for value in values:
    print(value)
#3.獲取字典中所有的鍵值對
#items不可變,可作為key值
items = dict_1.items()
# [('sex', '男'), ('phone', 110)]
#for 迴圈遍歷items
for item in items:
    #從元組中根據索引來取出資料
    key = item[0]
    value = item[1]
    print('鍵:%s 值:%s'%(key ,value))

三、向字典中新增資料

#向字典中新增資料
#如果key不存在,就新增資料。如果存在就修改key對應的值
dict_1['sss'] = '4s'
print(dict_1)
四、刪除字典中資料
#1.根據key刪除字典中的資料
del dict_1['sss']
print(dict_1)
#2.pop(key)  key是必要引數,要移出資料對應的key
s = dict_1.pop('name')
print(s)
#3.popitem() 隨機從字典中取出一個鍵值對,並且將鍵值放在元組中  如:('phone',110)
s = dict_1.popitem()
print(s)
#4.刪除字典中所有的鍵值對
# dict_1.clear()
# print(dict_1)
五、小例子

要求如下:

生成一個列表,存放100個隨機整數,找出出現次數最多的數字(可能不止一個)
程式碼如下:
#老師的程式
import random
#列表推導式、生成式
numbers  = [random.randint(0,100) for x in range(100)]
#[最終放在列表中的資料  for 迴圈
# number2 = [x for x in range(100)]
result_dict = {}
for num in numbers:
    #獲取數字在字典中出現的次數
    count = numbers.count(num)
    #把數字作為key,出現的次數作為value
    result_dict[num] = count
# print(result_dict)
#找出字典中最大的值 這個值就是最高次數
h_count = max(result_dict.values())
# print(h_count)
for item in result_dict.items():
    #item 鍵值對的小元組
    value =item[1]
    if value == h_count:
        key = item[0]
        print('出現次數最多的數字為:%s,次數為:%s'%(key,value))
#我的程式
list_2 = []
dict_2 = {}
import random
i = 100
while i:
    num = random.randint(0,100)
    list_2.append(num)
    i -= 1
for x in range(0,len(list_2)):
    num = list_2[x]
    counts = list_2.count(num)
    dict_2[num] = counts
count = max(dict_2.values())
for item in dict_2.items():
    value = item[1]
    if value == count:
        key = item[0]
        print('數字:%s 次數:%s'%(key,value))