【问题标题】:How to get splicing method working with both strings and lists如何让拼接方法同时使用字符串和列表
【发布时间】:2013-10-29 01:33:13
【问题描述】:

我对所有这些编程和 Python 都很陌生。所以我只是有一个关于拼接方法的问题。

代码如下:

function(seq, n)
return seq[:n]

很难解释我想用它做什么,但这就是输出的样子。我相信你聪明的人会明白的。

function([5, 3, 7, 2, 8], 3)

输出:

[8, 2, 5, 3, 7]

function("ACEJY3529",4)

输出:

'3529YACEJ'

这有点像交换位置......

所以问题是,这段代码可以很好地处理整数...但是当我使用字符串时,它会崩溃...

【问题讨论】:

  • 第一个测试用例,2发生了什么?不应该是[2, 8, 5, 3, 7]吗?
  • 哦,对了! ...我没有注意到... 2 应该在那里输出应该看起来像:[8,2,5,3,7]
  • 有人告诉我使用循环功能...为了完成这项任务...
  • @user2891763 [parameter2] 的单个项目列表看起来很奇怪 - 我猜你的意思是 parameter1[parameter2] 所以你从 @ 得到一个项目(无论是 str 还是 int) 987654331@
  • @Jon Clements:当我这样做时,它给了我一个错误:builtins.TypeError: can only concatenate list (not "int") to list

标签: string list function python-3.x splice


【解决方案1】:

最通用的方法是始终处理切片而不是单个项目,例如:

def function(seq, n):
    return seq[n+1:] + seq[n:n+1] + seq[:n]
                       ^^^^^^^^^^

我们总是使长度为 1 的可迭代项而不是不可迭代的单个项。

【讨论】:

  • 谢谢!!!!你帮我解决了这个问题......但是如果你不介意最后一件事......你能否详细说明你为什么这样做:seq [n:n + 1]......为什么让“长度1可迭代而不是一个不可迭代的单项”
  • @user2891763 好好玩一玩...看看你注意到seq[n]seq[n:n+1] 之间有什么区别:0...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多