python - 如何创建具有单个序列元素的序列?
问题描述
对于一个函数,我有一个参数,它是一个Sequence。我想返回给定序列中具有单个元素的另一个序列(相同类型)。
def get_element_at_index_as_list(some_seq : Sequence, index: int):
# return some_magic(some_seq[index])
# s.t. type(some_magic(some_seq[i])) == type(some_seq)
解决方案
我相信应该可以返回给定序列的一部分。
例如
return some_seq[index:index+1]
只要您收到的序列类型支持切片(并使用其自己类型的对象进行切片)。它至少适用于字符串、列表和元组。甚至适用于range
对象。
正如 ShadowRanger 在评论中指出的那样,它不适用于collections.deque
,因为它不支持切片。我认为没有一种方法适用于所有可能的序列类型(特别是因为用户可能会注册自己的序列类型)。
这是一种适用于deque
(和大多数其他序列类型)但不适用于字符串的方法:
return type(some_seq)([some_seq[index]])
推荐阅读
- java - 找不到“build-helper-maven-plugin”?
- cypress - cypress.io 如何在重新渲染列表本身时删除“n”次的项目,这是不可预测的
- javascript - 客户端渲染的虚拟 DOM 树不匹配
- pagespeed - 已安装本机 Lazyload 插件,但 PageSpeed 工具未检测到
- c++ - 运算符>>没有定义为什么?
- git - 特定文件夹的 Git fsck
- python - How can I write a function to accept a Fraction object in SWIG?
- php - 为什么我的系统中的默认 PHP 时区是“欧洲/莫斯科”?
- php - Concatenate string WITHIN a PHP HEREDOC block
- java - `handleMessage` 在 Spring Boot Web Sockets 中的 `afterConnectionClosed` 之后调用