python大神,这是你上次给我的答案,有个问题不知道啊,求解答

>>>str1='hchaha'>>>str2='hahahb'>>>>>>cmplst=zip(list(str1),list(str2))>>>print''.joi... >>> str1 ='hchaha'
>>> str2 ='hahahb'
>>>
>>> cmplst = zip(list(str1), list(str2))
>>> print ''.join([a for a, b in cmplst if a==b])
hhah
>>>

''.join([a for a, b in cmplst if a==b]) 这个咋理解啊? join我知道,可是你后面的看不懂啊([a for a, b in cmplst if a==b]),打扰了,亲。
题目:
str1 ='hchaha'
str2 ='hahahb'
比较两个字符串,找到一样的,(不能去重复的)
展开
 我来答
匿名用户
2014-11-14
展开全部
将[a for a, b in cmplst if a==b] 可换成:[x for x, y in cmplst if x==y] ,估计这仁兄没写清楚你才混淆a,b与字符串的ab。

cmplst是个迭代器,用list()可看到内容为:[(h,h),(c,a),(h,h),(a,a)....]
可简译为:若列表中的元组(如:(h,h),(a,a)中的两元素相等,就将元组中的第一个元素放在列表中。

这详细解释起来很费字。。,你还是看下基本语法。
学派
2014-11-17 · TA获得超过446个赞
知道小有建树答主
回答量:465
采纳率:100%
帮助的人:260万
展开全部
cmplst是一个由tuple组成的list: [(h,h),(c,a),(h,h),(a,a)....]

[a for a, b in cmplst] 用于推导出列表中的第1个元素字母,因为每个tuple有两个字母,此处用a,b分别作为临时变量,此时为: ['h','c','h','a','h','a']

[a for a, b in cmplst if a==b] 对前述步骤加以限制,只返回tuple中两个字母一样的元素

''.join()用于将返回的结果连结为字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yr...j@163.com
2014-11-14 · 超过56用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:93.3万
展开全部
朋友,我来告诉你答案!去google搜搜\“python五子棋人机对弈\”吧。这类的代码很多的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式