从交替的一侧循环列表

2024-04-01

给定一个列表

a = [0,1,2,3,4,5,6,7,8,9]

我怎样才能得到

b = [0,9,1,8,2,7,3,6,4,5]

也就是说,产生一个新列表,其中每个连续元素交替地从原始列表的两侧取出?


>>> [a[-i//2] if i % 2 else a[i//2] for i in range(len(a))]
[0, 9, 1, 8, 2, 7, 3, 6, 4, 5]

解释:
此代码从开头选取数字 (a[i//2]) 并从末尾开始 (a[-i//2]) of a,交替地(if i%2 else)。总共len(a)数字是被挑选出来的,所以即使这样也不会产生不良影响len(a) is odd.
[-i//2 for i in range(len(a))] yields 0, -1, -1, -2, -2, -3, -3, -4, -4, -5,
[ i//2 for i in range(len(a))] yields 0, 0, 1, 1, 2, 2, 3, 3, 4, 4,
and i%2之间交替False and True,
所以我们从中提取的索引a are: 0, -1, 1, -2, 2, -3, 3, -4, 4, -5.

我对Pythonicness的评价:
这条单线的好处是它很短并且显示出对称性(+i//2 and -i//2).
但不好的是,这种对称性是具有欺骗性的:
有人可能会认为-i//2i//2标志翻转了。但在Python中,整数除法返回下限 http://python-history.blogspot.de/2010/08/why-pythons-integer-division-floors.html结果而不是截断为零。所以-1//2 == -1.
另外,我发现通过索引访问列表元素比迭代更不Pythonic。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从交替的一侧循环列表 的相关文章

  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 使用 Python 从文本中删除非英语单词

    我正在 python 上进行数据清理练习 我正在清理的文本包含我想删除的意大利语单词 我一直在网上搜索是否可以使用像 nltk 这样的工具包在 Python 上执行此操作 例如给出一些文本 Io andiamo to the beach w
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • Scipy Sparse:SciPy/NumPy 更新后出现奇异矩阵警告

    我的问题是由大型电阻器系统的节点分析产生的 我基本上是在设置一个大的稀疏矩阵A 我的解向量b 我正在尝试求解线性方程A x b 为了做到这一点 我正在使用scipy sparse linalg spsolve method 直到最近 一切都
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页

随机推荐

  • 滤波器相关矩阵 R

    我在尝试从相关矩阵中提取数据时遇到了一些困难 我希望提取高于 0 8 且低于 0 99 的值 因为我想排除恰好为 1 的两只股票的相关性 这是我的代码 Test load the packages library corrr library
  • SQL Server 2008 中单个列上的多个外键约束

    我有两个表 TableA 和 TableB 现在 TableA 有 2 列 ID 和 Name TableB 有 3 列 ID Name 和 TableAID 现在有一个来自 TableA ID TableB TableAID 的外键约束
  • Apple 推送通知提供商的设备令牌

    如果我是 Apple 推送通知 提供商 multipleiOS 应用程序可以对多个应用程序使用相同的设备令牌吗 我知道每个应用程序都需要唯一的 SSL 证书 但是我对设备令牌感到困惑 Example 我有两个应用程序 A 和 B 我想为这两
  • 在使用 OpenSSL 的 EVP_PKEY_keygen 之前,我是否需要播种任何随机数生成器?

    在 OpenSSL Wiki 页面上称为EVP 密钥和参数生成 https wiki openssl org index php EVP Key and Parameter Generation它规定如下 由于这些函数使用随机数 因此您应该
  • NSURLCache 缓存响应问题

    我正在编写一个 iPhone 应用程序 其中一个选项卡是 twitter feed 我正在解析 twitter xml 并将其很好地放入表格视图中 如果没有互联网连接 我想显示上次有互联网连接和更新表时的缓存结果 我使用 NSURLCach
  • C# 此时无法启动异步操作。

    当我单击 asp web 表单中的提交按钮时 我尝试运行我的代码 我一点击按钮就出现错误有人知道原因吗 错误消息显示如下 应用程序中的服务器错误 此时无法启动异步操作 异步 操作只能在异步处理程序中启动 或者 模块或页面生命周期中的某些事件
  • 计算从现在到今天或明天指定时间的秒数[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我以为这个问题已经有了答案 但似乎没有 在Python中 我想计算从 现在 到指定时间 今天 或 明天 的秒数 无论何时发生 例如 下
  • 通过 Facebook 图形 API 发布带有大图片的链接

    虽然过去链接只能包含小 90x90 图片 但现在看来链接可以在 Feed 中包含更大的图片 例如 400x208 如果您将具有大 og image 的链接粘贴到 Facebook UI 上的 更新状态 字段中 例如http allthing
  • 使用 RedirectStandardOutput 运行 ChkDsk

    Running ChkDsk不重定向StandardOutput工作时不会出现这样的错误 var processStartInfo new ProcessStartInfo chkdsk exe D processStartInfo Use
  • Perl Win32::API 和指针

    我正在尝试使用 Perl 的 Win32 API 模块来利用 Win32 API 函数 DsGetSiteName 根据Windows SDK DsGetSiteName的函数原型为 DWORD DsGetSiteName LPCTSTR
  • 对可能包含时间或距离的字符串进行排序

    我已经为自定义字符串实现了排序算法 该字符串表示田径赛事的时间或距离数据 下面是格式 10 03 00 十分三秒或 10 英尺三英寸 排序的结果是 对于野外事件 最长的投掷或跳跃将是第一个元素 而对于跑步事件 最快的时间将是第一个元素 下面
  • 如何固定Snackbar的高度和位置?

    On Android 支持库 24 1 1 Snackbar 工作正常 然后开始Android 支持库 24 2 0从那时起 Snackbar 开始表现如下 在图书馆修订记录 https developer android com topi
  • Pandas DataFrame 迭代行和总和

    我有这个熊猫数据框 recipe name ingredient group weight pudding milk 0 60 pudding 2 sugar 0 10 pudding 2 sugar 0 70 pudding 2 milk
  • 如何将 R 中的 SpatialPointsDataFrame 更改为 SpatialPolygonsDataFrame 以便在 ggplot2 中使用它?

    我使用 R 使用 ggplot2 中的大圆在世界地图上投影一些数据流 我还想在我的地图上投影以下城市地区 http www naturalearthdata com downloads http www naturalearthdata c
  • 在 Angular Firestore 查询中禁用缓存

    我正在运行 firestore 查询来获取数据 但该查询正在从之前的缓存数据查询返回数据 然后在来自服务器的第二次传递中返回其他数据 之前未查询到 有没有办法可以禁用 firestore 查询的缓存 以便每次查询某些内容时请求都会发送到数据
  • 在 Android 上的 PhoneGap 3.3 中打开系统浏览器中的链接

    我一直在寻找答案 但似乎我找到的大部分内容都是针对旧版本的 PhoneGap 这是我的链接代码 a href My Account a 这段代码完全没有任何作用 我点击链接但没有任何反应 是的 我在 HTML 页面上添加了phonegap
  • 如何在 Deno 中下载大文件?

    我试图下载一个 10GB 的文件 但只有 4GB 保存到磁盘上 而且内存增长了很多 const res await fetch https speed hetzner de 10GB bin const file await Deno op
  • Docker CentOS 映像不会自动启动 httpd

    我正在尝试使用 Apache 和 PHP 程序运行一个简单的 Docker 映像 如果我跑的话效果很好 docker run t i p 80 80 my httpd bin bash 然后手动启动Apache service httpd
  • curl: (60) SSL 证书问题:无法获取本地颁发者证书

    root sclrdev home sclr certs FreshCerts curl ftp ssl verbose ftp abc u trup trup cacert etc ssl certs ca certificates cr
  • 从交替的一侧循环列表

    给定一个列表 a 0 1 2 3 4 5 6 7 8 9 我怎样才能得到 b 0 9 1 8 2 7 3 6 4 5 也就是说 产生一个新列表 其中每个连续元素交替地从原始列表的两侧取出 gt gt gt a i 2 if i 2 else