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

在Python中一次迭代一个字符串2个(或n个)字符

郎仰岳
2023-03-14
问题内容

今天早些时候,我需要一次遍历2个字符的字符串,以解析格式如下的字符串"+c-R+D-E"(有一些额外的字母)。

我最终完成了这个工作,但是看起来很丑。我最终评论了它在做什么,因为它感觉不太明显。几乎看起来像是pythonic,但并非完全如此。

# Might not be exact, but you get the idea, use the step
# parameter of range() and slicing to grab 2 chars at a time
s = "+c-R+D-e"
for op, code in (s[i:i+2] for i in range(0, len(s), 2)):
  print op, code

有一些更好/更清洁的方法可以做到这一点吗?


问题答案:

邓诺关于清洁剂,但还有另一种选择:

for (op, code) in zip(s[0::2], s[1::2]):
    print op, code

无副本版本:

from itertools import izip, islice
for (op, code) in izip(islice(s, 0, None, 2), islice(s, 1, None, 2)):
    print op, code


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

  • 本文向大家介绍Java重复一个字符串n次,包括了Java重复一个字符串n次的使用技巧和注意事项,需要的朋友参考一下 示例 问题:创建一个String包含的n重复项String s。 琐碎的方法将反复地将 String 这会创建n包含1的新字符串实例,以n重复s生成,导致运行时为。O(s.length() * n²) = O(s.length() * (1+2+...+(n-1)+n)) 为了避免这

  • 问题内容: java中有没有一种方法可以用指定数量的指定字符创建字符串?就我而言,我需要创建一个包含10个空格的字符串。我当前的代码是: 有没有更好的方法来完成同一件事。特别是我想快速(在执行方面)。 问题答案: for循环将由编译器优化。在像您这样的情况下,您无需自己担心优化。信任编译器。 顺便说一句,如果有一种方法可以创建一个包含n个空格字符的字符串,那么它的编码方式就和您刚才一样。

  • 问题内容: 我需要在Python中生成一个包含n个字符的字符串。使用现有的Python库是否可以实现这一目标?例如,我需要一个由10个字母组成的字符串: 问题答案: 要将同一字母重复10次: 而且,如果您想要更复杂的东西,例如随机的小写字母,它仍然只是一行代码(不计算import语句并定义):

  • 本文向大家介绍统计某一字符或字符串在另一个字符串中出现的次数相关面试题,主要包含被问及统计某一字符或字符串在另一个字符串中出现的次数时的应答技巧和注意事项,需要的朋友参考一下

  • 我有两本字典Dict1和DICT2。Dict1中每个键的值如下所示: 但是Dict2由键组成,这些键是DICT1中的值。DICT2中的值是由元组组成的列表,如下所示。 我得到的当前输出是 我想要的输出应该是字典式的: