【??途W(wǎng)華為機(jī)試】HJ8 合并表記錄

題目

描述

數(shù)據(jù)表記錄包含表索引和數(shù)值(int范圍的正整數(shù)),請對表索引相同的記錄進(jìn)行合并,即將相同索引的數(shù)值進(jìn)行求和運算,輸出按照key值升序進(jìn)行輸出。

輸入描述:

先輸入鍵值對的個數(shù)

然后輸入成對的index和value值,以空格隔開

輸出描述:

輸出合并后的鍵值對(多行)

示例1

輸入:

4

0 1

0 2

1 2

3 4

輸出:

0 3

1 2

3 4

解題思路

(1)記錄輸入的key, value個數(shù),賦值給num

(2)新建空字典data_dict

(3)循環(huán)num次,用split分割輸入的帶空格的字符串,并賦值給臨時變量key和value

(4)判斷key是否已在data_dict中,在的話兩個value求和,不在的話賦值value

(5)通過sorted函數(shù)對data_dict進(jìn)行排序,key = lambda x:int(x[0])控制排序key

(6)逐步輸出排序后的key和value

擴(kuò)展:

(1)加入?yún)?shù)reverse可以進(jìn)行倒排

(2)int函數(shù)用于將字符串轉(zhuǎn)換成整數(shù),否則排序會按照字符串排

>>>"3 4".split()

['3', '4']

>>>data_dict = {"1": 2, "3": 4}

>>>"1" in data_dict

True

>>>"5" in data_dict:

False

>>>"1" in data_dict.keys()

True

>>>sorted(data_dict.items(), key = lambda x:int(x[0]))

[('1', 2), ('3', 4)]

>>>sorted(data_dict.items(), key = lambda x:int(x[0]), reverse = True)

[('3', 4), ('1', 2)]

>>>data_dict = {"1": 2, "3": 4, "11": 4}

>>>sorted(data_dict.items(), key = lambda x:x[0])

[('1', 2), ('11', 4), ('3', 4)]

代碼

while True:

? ? try:

? ? ? ? num = int(input())

? ? ? ? data_dict = {}

? ? ? ? for i in range(num):

? ? ? ? ? ? key, value = input().split()

? ? ? ? ? ? if key in data_dict:

? ? ? ? ? ? ? ? data_dict[key] = data_dict[key] + int(value)

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? data_dict[key] = int(value)

? ? ? ? data = sorted(data_dict.items(), key = lambda x:int(x[0]))

? ? ? ? for (key,value) in data:

? ? ? ? ? ? print(str(key)+" "+str(value))

? ? except Exception as e:

? ? ? ? break


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 之前一直沒有實踐評分卡模型,今天從網(wǎng)上看到有相關(guān)的代碼,先保存下,后續(xù)需要再細(xì)看。 https://blog.cs...
    丙吉閱讀 1,365評論 0 0
  • 用于python面試整理,主要來源于http://www.cnblogs.com/skiler/p/6952707...
    AIM外星人閱讀 2,472評論 0 13
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,914評論 0 13
  • Remove time complexity: remove from a set is O(1), remove...
    云端漫步_b5aa閱讀 736評論 0 0
  • Python學(xué)習(xí)筆記 1.起步 輸入:# 單個輸入b=input()# input()接受的是string類型,需...
    NSQAQ閱讀 564評論 0 0

友情鏈接更多精彩內(nèi)容