当前位置: 首页 > 面试题库 >

Python方式将每2个元素插入一个字符串

柳培
2023-03-14
问题内容

有没有一种pythonic方式将元素插入字符串中的每个第二个元素?

我有一个字符串:“ aabbccdd”,我希望最终结果是“ aa-bb-cc-dd”。

我不确定该怎么做。


问题答案:

假设字符串的长度始终是偶数,

>>> s = '12345678'
>>> t = iter(s)
>>> '-'.join(a+b for a,b in zip(t, t))
'12-34-56-78'

t也可以消除

>>> '-'.join(a+b for a,b in zip(s[::2], s[1::2]))
'12-34-56-78'

算法是将字符串分组为对,然后将其与-字符连接在一起。

代码是这样写的。首先,它分为奇数位和偶数位。

>>> s[::2], s[1::2]
('1357', '2468')

然后使用该zip函数将它们组合成一个可迭代的元组。

>>> list( zip(s[::2], s[1::2]) )
[('1', '2'), ('3', '4'), ('5', '6'), ('7', '8')]

但是元组不是我们想要的。这应该是一个字符串列表。这是列表理解的目的

>>> [a+b for a,b in zip(s[::2], s[1::2])]
['12', '34', '56', '78']

最后,我们使用str.join()合并列表。

>>> '-'.join(a+b for a,b in zip(s[::2], s[1::2]))
'12-34-56-78'

第一部分代码是相同的想法,但是如果字符串很长,则会消耗更少的内存



 类似资料:
  • 问题内容: 使用Python,我需要在字符串中每64个字符插入一个换行符。在Perl中很简单: 如何在Python中使用正则表达式完成此操作?有没有更Python的方式来做到这一点? 问题答案: 与Perl中的相同,但用于访问组时使用反斜杠代替美元: 与Perl的选项等效。

  • 问题内容: 我正在尝试找到一种方法来加载JSON页面以显示我当前拥有的内容。但是我试图在每个元素中逐渐消失吗?有谁熟悉这样做的方法吗? 淡入淡出每个元素的时间? 这是我的代码示例,我正在使用jquery框架。 代码:http://pastie.org/343896 问题答案: 好了,您可以设置淡入淡出功能来触发“下一个”。 但是计时器可能是一个更好的系统,或者是将它们全部收集,将它们放入一个数组中

  • 问题内容: 目的: 在Golang中的字符串中每x个字符插入一个字符 输入: 预期产量: 尝试次数 尝试一次 结果是: 尝试两次 计算字符数 对于循环 如果X = 5,则插入一个 尝试三 扫描结合加入 问题 目前尝试两次和三次不包含代码段的原因是,我仍在思考应该使用哪种方法在Golang中的字符串中每X个字符插入一个字符。 问题答案: https://play.golang.org/p/HEGbe

  • 问题内容: 是否可以每个字符分割一个字符串? 例如,假设我有一个包含以下内容的字符串: 我怎样才能使它看起来像这样: 问题答案: 192 为了完整起见,你可以使用正则表达式执行此操作: 对于字符的奇数,你可以执行以下操作: 你还可以执行以下操作,以简化较长块的正则表达式: re.finditer如果字符串很长,则可以使用它逐块生成。

  • 问题内容: 我有一个字串:“敏捷的棕色狐狸跳过了懒狗。” 我想使用javascript(可能是jQuery)每 n个 字符插入一个字符。例如,我想打电话: 目标是使用此函数将&shy插入长字符串以允许它们进行换行。也许有人知道更好的方法? 问题答案:

  • 问题内容: 将两个字符串网格化的最Python方式是什么? 例如: 输入: 输出: 问题答案: 对我来说,最pythonic *的方式是以下代码,它 几乎做同样的事情, 但是使用运算符来连接每个字符串中的各个字符: 它也比使用两个调用更快: 存在更快的方法,但是它们常常使代码模糊。 注: 如果两个输入字符串是 不 相同的长度,则较长的一个将被截断, 停在较短字符串的结尾迭代。在这种情况下,应该使用