python字符串去重及排序 牛客_python学习(二)----字典

学习教材

00c6a56a62ffa99d023368d52de1a1eb.png

第六章 字典

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值