【发布时间】:2019-12-18 03:01:25
【问题描述】:
我正在使用 CPython 学习 Python。我正在阅读如何正确使用列表和元组,所以我设计了一个非常简单的程序来查看我是否知道我在做什么,但是正如我所看到的,理论上有问题而且我不知道什么是
我设计了 2 个函数:foo 和 foo2,打算打印相同的结果,但事实并非如此。
# Wrong output
def foo(v):
print(v[:][0])
# Right output
def foo2(v):
for i in range(0, 2):
print(v[i][0])
v = [('ABC', 'DEF', 1), ('ABC2', 'DEF2', 2)]
foo(v)
foo2(v)
结果: foo 的输出:('ABC', 'DEF', 1) foo2 的输出:ABC ABC2
预期: foo 的输出:ABC ABC2 foo2 的输出:ABC ABC2
这里发生了什么?
【问题讨论】:
-
标准列表不像 numpy 数组那样工作。
[:][0]不会从列表中的所有数据中获取第一个元素。在 numpy 数组中,您可以使用v[:,0]来获取列表['ABC' 'ABC2']- 但您仍然必须使用" ".join()或for-loop 才能正确显示它。 -
在Python shell中,输入
v[:]会得到什么?可能感兴趣:How to clone or copy a list?
标签: python