相关疑难解决方法(0)

Python Ellipsis对象有什么作用?

在闲置浏览命名空间的同时,我注意到一个名为" Ellipsis " 的奇怪物体,它似乎没有或做任何特殊的事情,但它是一个全局可用的内置.

在搜索之后,我发现它被Numpy和Scipy用于切片语法的一些模糊变体......但几乎没有别的.

这个对象是否专门用于支持Numpy + Scipy?省略号是否具有任何通用含义或用途?

D:\workspace\numpy>python
Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> Ellipsis
Ellipsis
Run Code Online (Sandbox Code Playgroud)

python ellipsis

472
推荐指数
11
解决办法
12万
查看次数

Python 自引用列表在排序时产生奇怪的输出

我最近在尝试使用.sort()和对自引用列表进行排序时遇到了一个奇怪的差异sorted()。我希望有人能对此有所了解。有问题的代码如下:

lst = [1, 2, 3]

lst[0] = lst
lst[1] = lst
lst[2] = lst

print(lst)

print(sorted(lst))

lst.sort()

print(lst)
Run Code Online (Sandbox Code Playgroud)

上面的代码产生以下输出:

[[...], [...], [...]]
[[[...], [...], [...]], [[...], [...], [...]], [[...], [...], [...]]]
[[...], [...], [...]]
Run Code Online (Sandbox Code Playgroud)

它的输出print(sorted(lst))让我感到困惑。想知道是否是某种形式的递归导致了它?

python list

50
推荐指数
2
解决办法
2747
查看次数

无限嵌套列表中究竟发生了什么?

可以在Python中创建无限的嵌套列表.这很清楚,虽然不受欢迎,但绝对没用,这是一个众所周知的事实.

>>> a = [0]
>>> a[0] = a
>>> a
[[...]]
>>> a[0] == a
True
Run Code Online (Sandbox Code Playgroud)

我的问题是,这里发生了什么:

>>> a = [0]
>>> b = [0]
>>> a[0], b[0] = b, a
>>> a
[[[...]]]
>>> b
[[[...]]]
>>> a == b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: maximum recursion depth exceeded in cmp
>>> a[0] == b
True
>>> a[0][0] == b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module> …
Run Code Online (Sandbox Code Playgroud)

python list infinite

31
推荐指数
4
解决办法
2755
查看次数

Python - 列表返回[[...],6]

如果我运行以下代码

data = [[1,2],[3,4],[5,6]]

for x in data:
    print(x[0])

for x[0] in data:
    print(x)
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

1
3
5
[[1, 2], 6]
[[3, 4], 6]
[[...], 6]
Run Code Online (Sandbox Code Playgroud)

我最终得到一个列表[[...], 6],但是这个[...]列表是什么?

它不正常的行为,因为调用y = [[...], 6]然后将下面的语句显示[...]0

>>> print(y)
[[Ellipsis], 6]

>>> print(y[0])
[0]
Run Code Online (Sandbox Code Playgroud)

但是,当我在顶部运行代码并键入以下语句时,结果没有意义:

>>> print(x)
[[...], 6]

>>> print(x[0])
[[...], 6]

>>> print(x[0][0])
[[...], 6]

>>> print(x[0][0][0])
[[...], 6]
Run Code Online (Sandbox Code Playgroud)

然而不知何故,这两个结果都是6

>>> print(x[1])
6

>>> print(x[0][1])
6
Run Code Online (Sandbox Code Playgroud)

回顾一下这个问题:这怎么可能,[...]代表什么,以及顶部的for循环如何创建这样的列表?

python python-3.x

14
推荐指数
2
解决办法
284
查看次数

列表中的[...](省略号)在Python中意味着什么?

我刚刚获得了一些python脚本的奇怪输出:

[[(7, 6), (6, 4), (7, 2)], [...], [...], [...], [(7, 6), (8, 4), (7, 2)], [...], [...], [...], [...], [...], [...], [...]]
Run Code Online (Sandbox Code Playgroud)

输出应该是元组列表的列表.但我不知道为什么会出现.

这是什么意思?

我不认为它是一个空列表,因为空列表是[].这些可能是重复的吗?

python

13
推荐指数
1
解决办法
3188
查看次数

Python3.6中的列表

我发现了一个关于列表的"有趣"问题.

list1 = [1, 2, 3]
list1.insert(3, list1)
print(list1)
[1, 2, 3, [...]]
POP = list1.pop()
print(POP)
[1, 2, 3]
list1.extend(['a', 'b', 'c'])
print(POP)
[1, 2, 3, 'a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

这些以交互模式显示.当然,我知道"insert"只能在列表中插入一个对象.然而,当我插入list1list1.它表明[...],这是什么意思?而且,POP = list1.pop()不是说pop不能只返回最终对象吗?扩展列表后,最终对象应为'c'.为什么它会返回整体list1但没有[...]

python python-2.7 python-3.x

8
推荐指数
1
解决办法
399
查看次数

省略号列出[...]并将列表连接到自身

编辑:我原来的例子里不小心.当我A向自己添加列表时,而不是当我向其自身添加包含列表的列表时,行为不会发生.请参阅下面的更正示例.AA


我试图理解省略号列表([...]在列表引用自身时出现和出现的列表)如何在Python 2中工作.

特别是,我想知道为什么,如果A是a list,A = A + A似乎对A += A(和A.append(A))的工作方式不同.

也就是说,你为什么得到:

>>> a = [1, 2]  
>>> a = a + [a]
>>> a  
[1, 2, [1, 2]]
Run Code Online (Sandbox Code Playgroud)

>>> a = [1, 2]  
>>> a += [a]
>>> a
[1, 2, [...]]
Run Code Online (Sandbox Code Playgroud)

(注意,a.append(a)就像后者一样,对我来说似乎有用.)

如果它有助于澄清事情,那么关于这个省略号列表现象的任何其他更一般的信息也将非常受欢迎.

python list concatenation

7
推荐指数
1
解决办法
2438
查看次数

python列表中的无限赋值?

我来过这个问题.码:

>>> values = [0, 1, 2]
>>> values[1] = values
>>> values
[0, [...], 2]
Run Code Online (Sandbox Code Playgroud)

我期望的结果是:

[0, [0, 1, 2], 2]
Run Code Online (Sandbox Code Playgroud)

这是python列表的无限分配吗?幕后的是什么?

谢谢.

python list infinite

5
推荐指数
1
解决办法
835
查看次数

[...]在python中作为输出意味着什么?

我正在尝试在战舰板上装船.下面代码中的函数应该使用许多船只和一个板(数组数组)作为参数.当我在终端运行时,我得到:

[[1, [...]], [1, [...]], [2, [...]]]
Run Code Online (Sandbox Code Playgroud)

这是什么意思?如何在此输出中用0到2的随机整数替换[...]?

from random import randint

def print_board(board):
    for row in board:
        print " ".join(row)
def random_row(board):
    return randint(0, len(board) - 1)
def random_col(board):
    return randint(0, len(board[0]) - 1)

def set_the_ships(num_ships,board):
    ship_list = []
    for i in range(num_ships):
        ship_row = random_row(board)
        ship_col = random_col(board)    
        position = [ship_row,ship_list]
        for j in range(i - 1):
            while (position[0] == ship_list[j][0] and position[1] == ship_list[j][1]):
                ship_row = random_row(board)
                ship_col = random_col(board)    
                position = [ship_row,ship_list]
        ship_list.append(position)
    return ship_list

print …
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
1
解决办法
813
查看次数

在Python中检测递归嵌套列表

假设我在Python中创建一个递归嵌套列表,如下所示:

>>> a = [1,2]
>>> a += [a]
Run Code Online (Sandbox Code Playgroud)

一些属性:

  • len(a)3
  • a[2] is aTrue

打印时会发生什么a?这出现:

>>> a
[1, 2, [...]]
Run Code Online (Sandbox Code Playgroud)

同理:

>>> a[2]
[1, 2, [...]]
Run Code Online (Sandbox Code Playgroud)

为什么?Python如何"知道"列表中的递归?如何检测到递归?

python

4
推荐指数
1
解决办法
102
查看次数

标签 统计

python ×10

list ×4

infinite ×2

python-3.x ×2

concatenation ×1

ellipsis ×1

python-2.7 ×1