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

从列表或元组中明确选择项目

汤玉宸
2023-03-14
问题内容

我有以下Python列表(也可以是元组):

myList = ['foo', 'bar', 'baz', 'quux']

我可以说

>>> myList[0:3]
['foo', 'bar', 'baz']
>>> myList[::2]
['foo', 'baz']
>>> myList[1::2]
['bar', 'quux']

如何明确挑选索引没有特定模式的项目?例如,我要选择[0,2,3]。或者,从1000个很大的清单中,我要选择[87, 342, 217, 998, 500]。是否有一些Python语法可以做到这一点?看起来像这样:

>>> myBigList[87, 342, 217, 998, 500]

问题答案:
list( myBigList[i] for i in [87, 342, 217, 998, 500] )

我将答案与python 2.5.2进行了比较:

  • 19.7微秒: [ myBigList[i] for i in [87, 342, 217, 998, 500] ]

  • 20.6 USEC: map(myBigList.__getitem__, (87, 342, 217, 998, 500))

  • 22.7 USEC: itemgetter(87, 342, 217, 998, 500)(myBigList)

  • 24.6 USEC: list( myBigList[i] for i in [87, 342, 217, 998, 500] )

请注意,在Python 3中,第1个已更改为与第4个相同。

另一种选择是以a开头,numpy.array它允许通过列表或a进行索引numpy.array

>>> import numpy
>>> myBigList = numpy.array(range(1000))
>>> myBigList[(87, 342, 217, 998, 500)]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: invalid index
>>> myBigList[[87, 342, 217, 998, 500]]
array([ 87, 342, 217, 998, 500])
>>> myBigList[numpy.array([87, 342, 217, 998, 500])]
array([ 87, 342, 217, 998, 500])

tuple不工作方式相同那些片。



 类似资料:
  • 问题内容: 我有一个元组列表。每个元组都有5个元素(对应于5个数据库列),我想进行查询 例如 是否可以通过某种方式查询元组列表? 问题答案: 如果您已命名元组,则可以执行以下操作: 否则使用索引: 或者按照Nate的答案使用元组拆包。请注意,您不必为每个拆开的物品都赋予一个有意义的名称。您可以打开一个六项元组的包装。

  • 本文向大家介绍从Perl的列表中选择元素,包括了从Perl的列表中选择元素的使用技巧和注意事项,需要的朋友参考一下 Perl中的列表符号与数组的列表符号相同。您可以通过在列表中添加方括号并给出一个或多个索引来从数组中提取元素- 示例 输出结果 这将产生以下结果- 同样,我们可以提取切片,尽管不需要前导@字符- 示例 输出结果 这将产生以下结果-

  • 我有一个Windows Phone应用程序,其中一个ListPicker绑定到一个ObservableCollection和一个选定的项目: 在ViewModel中: 当我试图从按钮处理程序的列表中删除所选项目时,我得到一个InvalidOperationException(SelectedItem必须始终设置为有效值): 我希望将SseltedCon条件设置为null(这实际上是列表中的第一个项

  • 我试着练习用CSS选择器获取值,我想出了这个(不像预期的那样工作) (我也尝试过) 我对的期望:第三个没有id属性和data-ad-show属性的元素被选中,其值将是所需的值3。

  • 问题内容: 如何从Java列表中随机选择一个项目?例如我有 等等…。如何使用 问题答案: 像这样吗

  • 我刚接触硒 我的脚本是: > 打开一个网站 单击一个按钮,然后打开转到另一个网站。 新网站将显示一个下拉列表,我需要从列表中选择一个选项 但是我失败了。 日志上说: 元素id=未找到主角色 我尝试将目标更改为详细的HTML元素,如< code >//HTML/frameset/frame/HTML/body/form/table/tbody/tr/TD/div[@ id = ' client ba