Python:减少(字符串列表)->字符串

阿列克谢·奥尔洛夫(Alexey Orlov)
>>> import functools as ft
>>> bk = ft.reduce(lambda x, y: x[0] + "." + y[0], ['alfa', 'bravo', 'charlie', 'delta'])
>>> bk
'a.d'
>>> km = ft.reduce(lambda x, y: x + y, [1, 2, 3, 4])
>>> km
10
>>> bk = ft.reduce(lambda x, y: x[0] + y[0], ['alfa', 'bravo', 'charlie', 'delta'])
>>> bk
'ad'
>>>

我期望像“ abcd”或“ abcd”之类的东西。不知何故,无法解释结果。这里也有类似的问题,但并非完全相同。

四人

执行作为第一个参数传递的函数的结果,将是下一次迭代中该函数的第一个参数。因此,您的代码是这样的

lambda x, y: x[0] + "." + y[0]
  1. x分别y'alfa''bravo'a.b

  2. 现在,x将是a.b并且y将是'charlie',所以结果将是a.c

  3. 现在,x将是a.c并且y将是'delta',所以结果将是a.d

这就是为什么结果是 a.d

要获得所需的内容,请将所有字符串中的所有前几个字符组成一个列表,并将所有元素与一起连接.,就像这样

print(".".join([item[0] for item in data]))
# a.b.c.d

注意:我不喜欢这种方式,但是为了完整起见,您可以使用这样做reduce

data = ['alfa', 'bravo', 'charlie', 'delta']
print(ft.reduce(lambda x, y: x + ("." if x else "") + y[0], data, ""))
# a.b.c.d

现在,最后一个空字符串将是第x一次迭代中的第一个值而且,.仅当x不是空字符串时才使用,否则我们将使用空字符串,以便串联可提供所需的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python“字符串或字符串列表”类型约定?

来自分类Dev

字符串列表中的字符串长度python

来自分类Dev

python 字符串列表中子字符串的索引

来自分类Dev

减少字符串

来自分类Dev

字符串列表

来自分类Dev

替换字符串列表中的字符串

来自分类Dev

以逗号分隔的字符串合并字符串列表

来自分类Dev

将字符串追加到字符串列表

来自分类Dev

从字符串列表返回随机字符串的公式?

来自分类Dev

从字符串列表中删除子字符串

来自分类Dev

在字符串中显示字符串列表

来自分类Dev

从字符串列表中删除字符串项目

来自分类Dev

解析XML字符串并构建字符串列表

来自分类Dev

从字符串创建子字符串列表

来自分类Dev

字符串到字符串列表

来自分类Dev

从字符串列表中删除空字符串

来自分类Dev

从子字符串列表构造目标字符串

来自分类Dev

遍历字符串列表以拉出子字符串

来自分类Dev

替换字符串列表中的字符串

来自分类Dev

从字符串列表中找到最快的字符串

来自分类Dev

用查询字符串查询字符串列表?

来自分类Dev

如何绑定字符串形式的字符串列表?

来自分类Dev

解析XML字符串并构建字符串列表

来自分类Dev

OpenSkyApi:字符串数组还是字符串列表?

来自分类Dev

与输入字符串匹配的字符串列表

来自分类Dev

Python中字符串列表的列表

来自分类Dev

Python列表内的字符串列表

来自分类Dev

Python中字符串列表的列表

来自分类Dev

如何在Python的字符串列表中的特定字符后删除子字符串