天天看點

python字元串去重及排序 牛客_python學習(二)----字典

學習教材

python字元串去重及排序 牛客_python學習(二)----字典

第六章 字典

1、字典的簡單操作 #定義一個字典

cars={'color':'red','price':200000}

print(cars)

#通路字典中的值

print(cars['color'])

print(cars['price'])

#為字典添加鍵值對

cars['owner']='sushan'

print(cars)

print(cars['owner'])

#删除鍵值對

del cars['owner']

print(cars) 輸出結果:

{‘color’: ‘red’, ‘price’: 200000}

red

200000

{‘color’: ‘red’, ‘price’: 200000, ‘owner’: ‘sushan’}

sushan

{‘color’: ‘red’, ‘price’: 200000}

2、周遊字典

鑒于字典可能包含大量的資料,Python支援對字典周遊。字典可用于以各種方式存儲資訊

是以有多種周遊字典的方式:可周遊字典的所有鍵—值對、鍵或值。

周遊所有的鍵值對 items()

方法items()傳回一個鍵—值對清單。用for循環依次将每個鍵—值對存儲到指定的兩個變量中 code={

'first':'c',

'second':'c++',

'third':'c#',

}

#可聲明兩個變量,用于存儲鍵—值對中的鍵和值

for key,value in code.items():

print('key:'+key)

print('value:'+value) 輸出結果:

key:first

value:c

key:second

value:c++

key:third

value:c# 注意:即便周遊字典時,鍵—值對的傳回順序也與存儲順序不同。Python不關心鍵—值對的存儲順序,而隻跟蹤鍵和值之間的關聯關系。

周遊字典中的所有鍵 keys()

keys()傳回的字典中所有的鍵 favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

for name in favorite_languages.keys():

print(name) 輸出結果:

jen

sarah

edward

phil

也可以不使用keys方法,直接周遊字典,預設周遊的就是所有的鍵 favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

for name in favorite_languages:

print(name) 輸出結果同上,不變

應用:調查一些人,用一個字典存儲每個人最愛的程式設計語言,然後再用一個列遍存儲你的朋友,對于受調查的人中,若有你的朋友,就列印一句話“Hi,xxx. I see your favorite language is xxx”

這個問題有兩種寫法:

1、周遊所有的鍵,若遇到你朋友,就列印

2、周遊所有的朋友,若遇到在字典的鍵中的朋友,就列印 favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

my_friends=['phil','juil']

#周遊所有鍵

for name in favorite_languages:

if name in my_friends:

print( 'Hi,'+name+'. I see your favorite language is '

+favorite_languages[name].title()) 輸出結果:

Hi,phil. I see your favorite language is Python favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

my_friends=['phil','juil']

#周遊朋友 看是否在字典裡

for name in my_friends:

if name in favorite_languages.keys():

print( 'Hi,'+name+'. I see your favorite language is '

+favorite_languages[name].title())

兩種方法都能完成題目要求。

周遊字典中的所有值 values()

方法values(),它傳回一個值清單,而不包含任何鍵。用法與keys()相同 favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

for name in sorted(favorite_languages.values()):

print(name.title())

3、輸出時排序和去重

排序

字典總是明确地記錄鍵和值之間的關聯關系,但擷取字典的元素時,擷取順序是不可預測的。這不是問題,因為通常你想要的隻是擷取與鍵相關聯的正确的值。要以特定的順序傳回元素,一種辦法是在for循環中對傳回的鍵進行排序。為此,可使用函數sorted()來獲得按特定順序排列的鍵清單的副本:

注意:這裡使用的是sorted(),前面我們學過,sorted()隻是臨時排序,不改變原有順序 favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

for name in sorted(favorite_languages.keys()):

print(name.title()) 輸出結果:

Edward

Jen

Phil

Sarah

去重

前面介紹的周遊方法,都沒有去除重複的元素

通過對包含重複元素的清單我們可以調用set(),Python會找出清單中獨一無二的元素,并使用這些元素來建立一個集合 favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

for name in set(favorite_languages.values()):

print(name.title()) 輸出結果:

Python

C

Ruby

4、嵌套

有時候,需要将一系列字典存儲在清單中,或将清單作為值存儲在字典中,這稱為嵌套。你可以在清單中嵌套字典、在字典中嵌套清單甚至在字典中嵌套字典。

在清單中存儲字典 car1={'color':'red','price':'500'}

car2={'color':'blue','price':'1000'}

car3={'color':'black','price':'1100'}

#建立一個清單 将三個字典都放進去

cars=[car1,car2,car3]

for num in cars:

print(num) 輸出結果:

{‘color’: ‘red’, ‘price’: ‘500’}

{‘color’: ‘blue’, ‘price’: ‘1000’}

{‘color’: ‘black’, ‘price’: ‘1100’}

為列遍添加十個汽車,輸出前五個 cars=[] #空清單

for num in range(1,11):

car={'color':'red','price':'500'}

cars.append(car)

#輸出前五個

for num in range(0,5):

print(cars[num])

print('...') 輸出結果:

{‘color’: ‘red’, ‘price’: ‘500’}

{‘color’: ‘red’, ‘price’: ‘500’}

{‘color’: ‘red’, ‘price’: ‘500’}

{‘color’: ‘red’, ‘price’: ‘500’}

{‘color’: ‘red’, ‘price’: ‘500’}

在字典中存儲清單

一個人可能喜歡多個語言,列印每個人喜歡的語言,注意喜歡一個語言和喜歡多個的列印的話不一樣哦 #字典裡面存清單

a = {

'jen': ['python', 'ruby'],

'sarah': ['c'],

'edward': ['ruby', 'go'],

'phil': ['python', 'haskell'],

}

for name,language in a.items():

if len(language)>1:

print(name.title()+"'s favorite languages are: ")

for num in language:

print(num)

else:

print(name.title()+"'s favorite language is: "+language[0])

在字典中存字典

一個字典用來存儲所有使用者的資訊,裡面每個使用者的資訊都是一個字典,要求列印所有使用者資訊 users={

'sushan':{

'num':'001',

'password':'123',

},

'sarah':{

'num':'002',

'password':'123',

},

'juil':{

'num':'003',

'password':'123',

},

}

for name,info in users.items():

print(name.title()+':')

for one,two in info.items():

print(one+'='+two) 輸出結果;

Sushan:

num=001

password=123

Sarah:

num=002

password=123

Juil:

num=003

password=123