我是靠谱客的博主 爱听歌云朵,最近开发中收集的这篇文章主要介绍一个关于字典操作的趣题。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天看python基础教程发现一个有趣的问题.


girls=['alice','bernice','clarice']
boys=['chris','arnold','bob']
letgirls={}
for girl in girls:
    letgirls.setdefault(girl[0],girl)
print letgirls.items()
print '+++++++++++++++++++++++++++++++'
print [b+'+'+g for b in boys for g in letgirls[b[0]]]

返回

[('a', 'alice'), ('c', 'clarice'), ('b', 'bernice')]
+++++++++++++++++++++++++++++++
['chris+c', 'chris+l', 'chris+a', 'chris+r', 'chris+i', 'chris+c', 'chris+e', 'arnold+a', 'arnold+l', 'arnold+i', 'arnold+c', 'arnold+e', 'bob+b', 'bob+e', 'bob+r', 'bob+n', 'bob+i', 'bob+c', 'bob+e']

===========================================================================

girls=['alice','bernice','clarice']
boys=['chris','arnold','bob']
letgirls={}
for girl in girls:
    letgirls.setdefault(girl[0],[girl])

#换成  letgirls.setdefault(girl[0],[]).append(girl)一样


print letgirls.items()
print '+++++++++++++++++++++++++++++++'
print [b+'+'+g for b in boys for g in letgirls[b[0]]]

结果为

[('a', ['alice']), ('c', ['clarice']), ('b', ['bernice'])]
+++++++++++++++++++++++++++++++
['chris+clarice', 'arnold+alice', 'bob+bernice']



如下一段代码我一直无法理解:

arr = {}

arr.setdefault('index',[]).append('hello,word')


后来查了资料才看到如下解释:

setdefault(key[, default])

If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default defaults to None.


注意红色的部分,提示了返回值。

我心中的谜团顿然被解开了,是我学习过程中,忽略了函数的返回值了。。。


其实还是思维方式没转变过来,由于长期使用php,突然看到这种obj.methods.methods.. 不习惯了,感觉某种程度上,py很相似js



我再来解释一下这段简单的代码:

arr = {}  //定义一个字典变量

arr.setdefault('index',[]).append('hello,word')  

// 前面红色部分,给arr增加一个索引(键)index,赋值为空。其结果返回赋给它的值,值为空--- 即 [] 空列表)

// 后面的,给前面的返回值[]列表里最后增加一个元素值“hello,word”


最后

以上就是爱听歌云朵为你收集整理的一个关于字典操作的趣题。的全部内容,希望文章能够帮你解决一个关于字典操作的趣题。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部