相关疑难解决方法(0)

列表和元组之间有什么区别?

有什么不同?

元组/列表的优点/缺点是什么?

python tuples list

975
推荐指数
14
解决办法
40万
查看次数

为什么我们需要Python中的元组(或任何不可变数据类型)?

我已经阅读了几个python教程(Dive Into Python,一个),以及Python.org上的语言参考 - 我不明白为什么语言需要元组.

与列表或集合相比,元组没有方法,如果我必须将元组转换为集合或列表以便能够对它们进行排序,那么首先使用元组有什么意义呢?

不变性?

为什么有人关心变量是否存在于内存中的不同位置而不是最初分配的位置?这整个Python的不变性业务似乎过分强调.

在C/C++中,如果我分配一个指针并指向一些有效的内存,我不关心地址的位置,只要在我使用它之前它不是null.

每当我引用该变量时,我都不需要知道指针是否仍然指向原始地址.我只是检查null并使用它(或不使用).

在Python中,当我分配一个字符串(或元组)将其分配给x时,然后修改字符串,为什么我关心它是否是原始对象?只要变量指向我的数据,那就重要了.

>>> x='hello'
>>> id(x)
1234567
>>> x='good bye'
>>> id(x)
5432167
Run Code Online (Sandbox Code Playgroud)

x 仍然引用我想要的数据,为什么有人需要关心它的id是相同还是不同?

python tuples

138
推荐指数
7
解决办法
4万
查看次数

为什么元组比Python中的列表更快?

我刚读过"Dive into Python","元组比列表更快".

元组是不可变的,列表是可变的,但我不太明白为什么元组更快.

有没有人对此进行过性能测试?

python performance tuples list

65
推荐指数
7
解决办法
2万
查看次数

具有默认选择的python argparse选项

我正在尝试在Python 3应用程序中使用argparse,其中有明确的选择列表,但如果没有指定,则为默认值.

我的代码是:

parser.add_argument('--list', default='all', choices=['servers', 'storage', 'all'], help='list servers, storage, or both (default: %(default)s)') 
args = parser.parse_args()
print(vars(args))
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我得到以下选项:

$ python3 ./myapp.py --list all
{'list': 'all'}
Run Code Online (Sandbox Code Playgroud)

或者没有选项:

$ python3 ./myapp.py --list
usage: myapp.py [-h] [--list {servers,storage,all}]
myapp.py: error: argument --list: expected one argument
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?或者我可以没有指定选项的默认值吗?

python argparse python-3.x

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

Python中的空元组是否有任何用途?

还有其他目的(除了那里因为它需要)空元组可能有吗?或者:你会用什么空元组?如果有什么.我只是找不到答案(好吧,一个肯定的答案,如:"是的,有"),请帮助我解决这个问题."用于测试另一个元组是否为空"不是一个可接受的答案,因为我们应该使用'not'运算符.

python

20
推荐指数
2
解决办法
1万
查看次数

Python列表文档中的"同质"是什么?

在python文档列表中定义为:

可变序列,通常用于存储同类项目的集合(其中精确的相似程度将因应用而异).

为什么它用于存储同类商品的集合?

字符串和int项是否同质?

a = [12,"hello"]
Run Code Online (Sandbox Code Playgroud)

python list

9
推荐指数
1
解决办法
614
查看次数

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
查看次数

在Python if语句中使用列表和元组

我想知道是否有任何好的理由在python if语句中更喜欢列表而不是元组,反之亦然.因此,以下功能相同,但在性能和编码风格方面优于另一个,还是无关紧要?

if x in (1,2,3):
    foo()

if x in [1,2,3]:
    foo()
Run Code Online (Sandbox Code Playgroud)

我似乎已经养成了使用元组的习惯,如果有2或3个值和列表的任何更长的时间,我认为因为根据我的经验,元组往往很短并列出很长,但这似乎有点武断,可能不必要地不一致.

我会对人们可以给出的任何一个比另一个更好的例子感兴趣.

干杯

python if-statement tuples list

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

什么是数据对象可接受的样式python

python中数据对象的普通样式是什么。可以说我有一种方法可以从某个地方(网络,数据库等)获取客户,我应该返回哪种类型的对象。我看到几种选择:

  • 一个元组
  • 一本字典
  • 一个类实例(数据类为“普通”类)

我敢肯定还有其他人。做我的第一个大型python项目,因此想从一开始就使用最佳实践

哇-对这个问题的负面反应感到惊讶。也许不清楚

我有很多要传递给我的代码的不同数据项。用户,产品,客户,订单等(实际上,它们并非如此,而是简单易懂的事物类型)。所以我有

def get_user():
  return x
Run Code Online (Sandbox Code Playgroud)

x应该是什么。类的实例,称为用户,字典,元组...

没有与对象关联的方法,纯数据

似乎namedtuple是要走的路

编辑:如何作为一种样式

class product:
   pass

...

def get_product():
   ... db read stuff
   pr = product()
   pr.name = dbthing[0]
   pr.price = dbthing[1]
   return pr
Run Code Online (Sandbox Code Playgroud)

那是酒吧诱导或成熟的风格,还是奇怪或什么?有用。从消费者的角度来看,它使代码更加可读

def xxx():
  pr = get_product()
  total = amount * pr.price
Run Code Online (Sandbox Code Playgroud)

python

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

为什么要实现两个如此相似的数据结构,如List和Tuple

在python中,list数据结构是一系列元素.类似地,a tuple也是一系列元素,然而,元组是immutable.

是什么原因产生了这样一个类似的数据结构,那就是只有功能,而不是列表,它是不能改变的?它是否可以通过不可变来节省内存空间?

此外,如果列表和元组包含完全相同的数据,它们是否会在内存中使用相同的空间量?

python tuples list immutability

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

删除列表中的元组

我有这些清单:

sqvaluelist = []
valuelist = [(10.5,), (20.5,), (21.5,), (70.0,), (34.5,)]
Run Code Online (Sandbox Code Playgroud)

我想在valuelist上应用此代码:

for value in valuelist:
    valuesquared = value*value
    sqvaluelist.append(valuesquared,)
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

TypeError: can't multiply sequence by non-int of type 'tuple'

我想我知道这个错误背后的原因,这是因为每个值都在一个单独的元组中.

我的问题是,是否有任何方法可以将这些值从各自的元组中删除,然后将它们转换为类似的列表

valuelist = [10.5, 20.5, 21.5, 70.0, 34.5]
Run Code Online (Sandbox Code Playgroud)

没有手动编辑现有列表的结构,以便可以执行for循环?

编辑:我道歉!他们实际上是元组!在每个值后添加逗号.抱歉!

python

0
推荐指数
2
解决办法
1615
查看次数

Python方法列表

在Python3.2中我正在尝试做一个列表:

>> ls = 1, 2, 3
>> ls
(1, 2, 3)
>> ls.append(4)
Run Code Online (Sandbox Code Playgroud)

使用这最后一个命令,我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
Run Code Online (Sandbox Code Playgroud)

为什么是这样?我该如何解决?谢谢你的时间

python methods list

0
推荐指数
1
解决办法
89
查看次数

这个'文件'实体是一个元组吗?

file = ('cropdata.txt') 
Run Code Online (Sandbox Code Playgroud)

我不确定是什么元组.这是file一个元组?元组与列表或字符串有何不同?

python

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