我有两个等长的字符串,它们是两个列表a
和b
的一部分,它们看起来像这样:
a[1] = '0 8 9'
b[1] = '0 * 5 6'
我想按顺序(按 ASCII 代码(比较上面每个字符串中的每个项目,也适用于列表的其余部分a
和b
。
我对这两个字符串的预期结果是:
'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
(作为字符串时间顺序中的最大值(