比较两个字符串并返回每个字符串中更大的项目 - Python



我有两个等长的字符串,它们是两个列表ab的一部分,它们看起来像这样:

a[1] = '0   8 9'
b[1] = '0 * 5 6'

我想按顺序(按 ASCII 代码(比较上面每个字符串中的每个项目,也适用于列表的其余部分ab

我对这两个字符串的预期结果是:

'0 * 8 9'

我是 Python 的新手,我读过关于列表理解的信息,但我不知道在这种情况下如何使用它。我需要一些帮助,提前谢谢你!

编辑:我必须比较非数字值。所以我必须通过ASCII代码比较它们。(我对问题进行了一些更改(

''.join(map(max, a, b))

演示:

>>> a = '0   8 9'
>>> b = '0 * 5 6'
>>> ''.join(map(max, a, b))
'0 * 8 9'

注意:以下是要求仅用于比较数字的情况(在OP编辑之前(。有关OP的新要求,请查看@StefanPochmann的答案

使用list comprehension

>>> [ max(map(int,ele)) for ele in zip(a.split(),b.split()) ]

#driver 值 :

IN : a  = '0 1 8 9' 
IN : b = '0 4 5 6'
OUT : [0, 4, 8, 9]

接下来很容易。只要join他们。所以,最后:

>>> l = [ str(max(map(int,ele))) for ele in zip(a.split(),b.split()) ]   
>>> ' '.join(l)

#driver 值 :

IN : a  = '2 1 8 9'
IN : b = '11 4 5 6'
OUT : '11 4 8 9'

IMP :这里的map处理了涉及在数字(如[2, 11](之间查找max的情况,如果没有它,它将选择2(作为字符串时间顺序中的最大值(

相关内容

  • 没有找到相关文章

最新更新