python常用字典操作范例,python字典范例,# experiment


# experimenting with the Python dictionary# a seemingly unordered set of key:value pairs, types can be mixed# Python23 tested     vegaseat     13feb2005# initialize a dictionary, here a dictionary of roman numeralsromanD = {'I':1,'II':2,'III':3,'IV':4,'V':5,'VI':6,'VII':7,'VIII':8,'IX':9}print "A dictionary is an unordered set of key:value pairs:"print romanD# create an empty dictionaryD1 = {}# show empty dictionary contents and length (number of item/pairs)print "Empty Dictionary contains:"# shows  {}print D1# shows Length = 0print "Length = ", len(D1)# add/load new key:value pairs by using indexing and assignment# here 'eins' is the key, 'one' is the key value# the start of a german to english dictionaryD1['null'] = 'zero'D1['eins'] = 'one'D1['zwei'] = 'two'D1['drei'] = 'three'D1['vier'] = 'four'# print loaded dictionary and length# the dictionary key order allows for most efficient searchingprint "Dictionary now contains (notice the seemingly random order of pairs):"print D1print "Length = ",len(D1)# find the value by key (does not change dictionary)print "The english word for drei is ", D1['drei']# betterif 'drei' in D1:    print "The english word for drei is ", D1['drei']# create a list of the values in the dictionaryL1 = D1.values()# the list can be sorted, the dictionary itself cannotL1.sort()print "A list of values in the dictionary (sorted):"print L1# create a list of dictionary keysL2 = D1.keys()L2.sort()print "A list of the dictionary keys (sorted):"print L2# does the dictionary contain a certain key?if D1.has_key('null'):    print "Key 'null' found!"else:    print "Key 'null' not found!"# copy dictionary D1 to D2 (the order may not be the same)D2 = D1.copy()print "Dictionary D1 has been copied to D2:"print D2# delete an entrydel D2['zwei']print "Dictionary D2 after 'zwei' has been deleted:"print D2# extract the value and remove the entry# pop() changes the dictionary, use e3 = D2['drei'] for no changee3 = D2.pop('drei')print "Extract value for key = 'drei' and delete item from dictionary:"print e3print "Dictionary D2 after 'drei' has been popped:"print D2printstr1 = "I still miss you baby, but my aim's gettin' better!"print str1print "Count the characters in the above string:"# create an empty dictionarycharCount = {}for char in str1:    charCount[char] = charCount.get(char, 0) + 1print charCountprintif 't' in charCount:    print "There are %d 't' in the string" % charCount['t']printstr2 = "It has been a rough day. I got up this morning put on a shirt and a"str2 = str2 + " button fell off. I picked up my briefcase and the handle came off."str2 = str2 + " Now I am afraid to go to the bathroom."print str2print "Count the words in the above string, all words lower case:"# create a list of the wordswordList = str2.split(None)# create an empty dictionarywordCount = {}for word in wordList:    # convert to all lower case    word = word.lower()    # strip off any trailing period, if needed do other punctuations    if '.' in word:        word = word.rstrip('.')    # load key:value pairs by using indexing and assignment    wordCount[word] = wordCount.get(word, 0) + 1print wordCountprint# put keys into list and sortkeyList = wordCount.keys()keyList.sort()# display words and associated count in alphabetical orderfor keyword in keyList:    print keyword, "=", wordCount[keyword]# put the dictionary pairs into a list, use the romanD dictionaryromanList = []for key, value in romanD.items():    # put value first for a meaningful sort    romanList.append((value, key))romanList.sort()print "\nThe roman numeral dictionary put into a (value,pair) list then sorted:"print romanListprint "\nList them as pairs on a line:"for i in xrange(len(romanList)):    print romanList[i][0],'=', romanList[i][1]print# split the romanD dictionary into two listsprint "Splitting the romanD dictionary into two lists:"romankeyList = []romanvalueList = []for key, value in romanD.items():    romankeyList.append(key)    romanvalueList.append(value)print "Key List:",romankeyListprint "Value List:",romanvalueListprint# make a dictionary from the two listsprint "Combining the two lists into a dictionary:"romanD1 = dict(zip(romankeyList, romanvalueList))print romanD1# to save a Python object like a dictionary to a file# and load it back intact you have to use the pickle moduleimport pickleprint "The original dictionary:"print romanD1file = open("roman1.dat", "w")pickle.dump(romanD1, file)file.close()file = open("roman1.dat", "r")romanD2 = pickle.load(file)file.close()print "Dictionary after pickle.dump() and pickle.load():"print romanD2print# let's get rid of some duplicate wordsstr = "Senator Strom Thurmond dressed as as Tarzan"print "\nOriginal string:"print strprint "A list of the words in the string:"wrdList1 = str.split()print wrdList1def uniqueList(anyList):    """given a list, returns a unique list with the order retained"""    # create an empty dictionary    dic1 = {}    # use a list comprehension statement and the unique feature of a dictionary    return [dic1.setdefault(e,e) for e in anyList if e not in dic1]# a call to the above function will retain the order of wordswrdList2 = uniqueList(wrdList1)print "Convert unique list back to string (order retained):"print " ".join(wrdList2)

评论关闭