如何使用Python 3.5.1从列表中打印多个非连续值

tau*_*ker 6 python list python-3.x

我创建了一个列表,并希望从列表中选择一些要打印的项目.下面,我只想打印索引0处的"bear"和索引3处的"kangaroo".我的语法不正确:

>>> animals = ['bear', 'python', 'peacock', 'kangaroo', 'whale', 'platypus']
>>> print (animals[0,3])
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):文件"",第1行,打印(animals [0,3])TypeError:列表索引必须是整数或切片,而不是元组

我试过索引之间的空格,但它仍然给出一个错误:

>>> print (animals[0, 3])
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):文件"",第1行,打印(animals [0,3])TypeError:列表索引必须是整数或切片,而不是元组

我可以打印单个值或0-3范围,例如:

>>> print (animals [1:4])
['python', 'peacock', 'kangaroo']
Run Code Online (Sandbox Code Playgroud)

如何打印多个非连续列表元素?

Ash*_*ary 8

要从列表中选择任意项,您可以使用operator.itemgetter:

>>> from operator import itemgetter    
>>> print(*itemgetter(0, 3)(animals))
bear kangaroo
>>> print(*itemgetter(0, 5, 3)(animals))
bear platypus kangaroo
Run Code Online (Sandbox Code Playgroud)


Tig*_*kT3 6

animals[0,3]Python的list类型不支持使用元组切片.如果您想要某些任意值,则必须单独索引它们.

print(animals[0], animals[3])
Run Code Online (Sandbox Code Playgroud)


Mad*_*ist 5

list(animals[x] for x in (0,3))是你想要的子集.与numpy数组不同,本机Python列表不接受列表作为索引.

您需要将生成器表达式包装在其中list以打印它,因为它没有可接受的__str____repr__单独的.你也可以使用str.join一个可接受的效果:', '.join(animals[x] for x in (0,3)).