相关疑难解决方法(0)

元组可读性:[0,0] vs(0,0)

我有几次使用Python,我发现了"pythonic"编码方式.我在代码中使用了很多元组,其中大部分是极地或笛卡尔位置.

我发现自己在写这个:

window.set_pos([18,8])
Run Code Online (Sandbox Code Playgroud)

而不是这个:

window.set_pos((18,8))
Run Code Online (Sandbox Code Playgroud)

摆脱我发现难以阅读的双重括号.

似乎python自动进行从列表到元组的类型转换,因为我的代码正常工作.

但它是一种很好的编码方式吗?你有任何可用于编写可读代码的演示提示吗?

提前感谢你肯定有启发性的答案.

python readability tuples

21
推荐指数
3
解决办法
867
查看次数

为什么Django使用元组设置而不是列表?

引用这个答案:

除了元组是不可变的之外,还有一个语义上的区别应该指导它们的使用.元组是异构数据结构(即,它们的条目具有不同的含义),而列表是同构序列.元组有结构,列表有顺序.

这对我来说很有意义.但是为什么Django使用元组而不是列表进行设置?例:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)
Run Code Online (Sandbox Code Playgroud)

这个(以及所有其他设置)在语义上是不是一个完美的案例列表?

python django tuples list semantics

18
推荐指数
2
解决办法
1611
查看次数

()vs [] vs {}之间有什么区别?

Python中的()vs [] vs {}之间有什么区别?
他们是收藏品?我怎么知道何时使用哪个?

python collections data-structures

15
推荐指数
3
解决办法
2万
查看次数

Groovy将元组/ map扩展为参数

是否可以将地图扩展为方法参数列表

在Python中,它是可能的,例如. 将元组扩展为参数

我有def map = ['a':1, 'b':2] 一个方法def m(a,b)

我想写像smt一样 m(*map)

groovy arguments parameter-passing

10
推荐指数
1
解决办法
5946
查看次数

列表用于同类数据,元组用于异构数据......为什么?

我觉得这之前一定要问过(可能不止一次),所以可能提前道歉,但我无法在任何地方找到它(这里或通过谷歌).

无论如何,在解释Py​​thon中列表和元组之间的区别时,在元组不可变之后提到的第二件事是列表最适用于同类数据,而元组最适合异构数据.但似乎没有人想解释为什么会这样.那么为什么会这样呢?

python

9
推荐指数
2
解决办法
5703
查看次数

Python效率:列表与元组

我有一定数量的基础对象.

这些基础对象将被放入集合中,这些集合将被包围:排序,截断等.

不幸的是,n足够大,内存消耗略微令人担忧,速度越来越快.

我的理解是元组的内存效率略高,因为它们是经过重复数据删除的.

无论如何,我想知道Python 2.6/2.7中列表与元组的cpu /内存权衡是什么.

python optimization python-2.6 python-2.7

8
推荐指数
3
解决办法
7151
查看次数

Python中列表和元组(减去不变性)之间的区别?

我已经知道Python中列表和元组之间的主要区别在于列表是可变的而元组则不是.除此之外,他们可以使用不同的方法,我对列表和元组知之甚少.它们之间还有其他区别吗?在Python 3的列表中使用元组是否有任何优点/缺点(除了不变性)?是否有一个比另一个更快的访问时间,或具有更小的内存大小,或包含更多的方法?他们的内部结构有何不同?或者是一个元组只是一个不可变的列表,仅此而已?

tuples list python-3.x

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

Pythonic方法计算数组的偏移量

我试图计算可变大小数组的起源和偏移量,并将它们存储在字典中.这是我实现这一目标的非pythonic方式.我不确定我是否应该使用map,lambda函数或列表推导来使代码更加pythonic.

基本上,我需要根据总大小来剪切数组的块,并将xstart,ystart,x_number_of_rows_to_read,y_number_of_columns_to_read存储在字典中.总大小是可变的.我无法将整个数组加载到内存中并使用numpy索引或我肯定会.原点和偏移用于使数组变成numpy.

intervalx = xsize / xsegment #Get the size of the chunks
intervaly = ysize / ysegment #Get the size of the chunks

#Setup to segment the image storing the start values and key into a dictionary.
xstart = 0
ystart = 0
key = 0

d = defaultdict(list)

for y in xrange(0, ysize, intervaly):
    if y + (intervaly * 2) < ysize:
        numberofrows = intervaly
    else:
        numberofrows = ysize - y

    for x in xrange(0, xsize, intervalx):
        if …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

6
推荐指数
1
解决办法
1420
查看次数

列表和元组表现不同

我很清楚地知道,有列表和元组之间的差异元组不只是不断名单,但有其中两个实际上是由区别对待的几个例子的代码(由编码约定反对),所以我(草率地)可以互换地使用它们.

然后我遇到了一个案例,他们给出了完全不同的行为:

>>> import numpy as np
>>> a = np.arange(9).reshape(3,3)
>>> a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> idx = (1,1)
>>> a[idx]
4
>>> idx = [1,1]
>>> a[idx]
array([[3, 4, 5],
       [3, 4, 5]])
Run Code Online (Sandbox Code Playgroud)

谁能解释这里发生了什么?更重要的是,这个陷阱还有什么地方出现在scipy中?

python arrays numpy scipy

6
推荐指数
1
解决办法
193
查看次数

是否有理由偏爱__slots__的列表或元组?

您可以__slots__使用列表或元组(或任何可迭代的?)在新型python类中进行定义。创建实例后,该类型仍然存在。

鉴于元组总是比列表更有效率并且是不变的,是否有任何理由不希望使用元组__slots__呢?

>>> class foo(object):
...   __slots__ = ('a',)
... 
>>> class foo2(object):
...   __slots__ = ['a']
... 
>>> foo().__slots__
('a',)
>>> foo2().__slots__
['a']
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
2
解决办法
1280
查看次数