将两个字符串与备用字符合并为输出

新手上路,请多包涵

我得到的任务是交替组合两个长度相同的字符串的字母。

例如:

 Inputstring 1: "acegi"

Inputstring 2: "bdfhj"

Outputstring: "abcdefghij"

当我运行我的代码时,我遇到了以下问题。

 Traceback (most recent call last):
  File "...", line 14, in <module>
    x =x+f
TypeError: must be str, not int

我认为每个相关变量都是 String

 s=str(input("Input first String:"))
v=str(input("Input second String:"))
x=""
c=1
z=""
f=""
laenge=len(s)
lenge=len(v)

for f in range(laenge):

    if f in range(c,c+1):
        x =x+f
for z in range(lenge):

    if z in range(c,c+1):
        x=x+z
c=c+1

print(x)

原文由 Florian Schäfer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 281
1 个回答

您可以使用 zipjoin 在一行中完成。

 out1 = ''.join(''.join(f for f in tup) for tup in zip(inp1, inp2))

更实用的风格:

 out1 = ''.join(map(''.join, zip(inp1, inp2)))  # kudos @Coldspeed

两者都打印

abcdefghij


打破代码:

  • zip()
   pairs = list(zip(inp1, inp2))
  print(pairs )  # [('a', 'b'), ('c', 'd'), ('e', 'f'), ('g', 'h'), ('i', 'j')]

  • .join()
   temp = []
  for sub in pairs:
      temp.append(''.join(sub))
  print(temp)  # ['ab', 'cd', 'ef', 'gh', 'ij']

  • .join() 再次
  out1 = ''.join(temp)
  print(out1)  # abcdefghij


最后,仅供您娱乐和学习,另外两种更 老派的 方法:

 out1 = ''
for i in range(len(inp1)):
    out1 += inp1[i] + inp2[i]

out1 = ''
for i, c in enumerate(inp1):
    out1 += c + inp2[i]

原文由 Ma0 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题