概述
今天看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”
最后
以上就是爱听歌云朵为你收集整理的一个关于字典操作的趣题。的全部内容,希望文章能够帮你解决一个关于字典操作的趣题。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复