相关疑难解决方法(0)

如何克隆或复制列表?

在Python中克隆或复制列表有哪些选项?

在使用时new_list = my_list,每次都会对new_list更改进行任何修改my_list.为什么是这样?

python clone copy list

2289
推荐指数
16
解决办法
149万
查看次数

241
推荐指数
8
解决办法
17万
查看次数

如何重新排序列表?

如果我有一个列表[a,b,c,d,e]如何以任意方式重新排序项目,如[d,c,a,b,e]

编辑:我不想改变他们.我想以预定义的方式重新排序它们.(例如,我知道旧列表中的第3个元素应该成为新列表中的第一个元素)

python

97
推荐指数
4
解决办法
10万
查看次数

在Python中随机化字符串列表的最佳方法

我收到一个字符串列表作为输入,需要返回一个列表与这些相同的字符串,但按随机顺序.我必须允许重复 - 相同的字符串可能在输入中出现一次或多次,并且在输出中必须出现相同的次数.

我看到了几种"蛮力"的方法(使用循环,上帝禁止),其中一种我正在使用.然而,了解Python可能会有一个很酷的单行程来完成工作,对吗?

python string random

73
推荐指数
3
解决办法
9万
查看次数

shuffle vs permute numpy

numpy.random.shuffle(x)和之间有什么区别numpy.random.permutation(x)

我已经阅读了doc页面,但是当我想随机改组数组元素时,我无法理解两者之间是否存在任何差异.

更确切地说,假设我有一个数组x=[1,4,2,8].

如果我想生成x的随机排列,那么shuffle(x)和之间的区别是permutation(x)什么?

python numpy shuffle permutation scipy

66
推荐指数
2
解决办法
4万
查看次数

TypeError:只有整数标量数组可以转换为带有1D numpy indices数组的标量索引

我想编写一个函数,从训练集中随机选取元素,但是基于提供的bin概率.我将设置索引除以11个bin,然后为它们创建自定义概率.

bin_probs = [0.5, 0.3, 0.15, 0.04, 0.0025, 0.0025, 0.001, 0.001, 0.001, 0.001, 0.001]

X_train = list(range(2000000))

train_probs = bin_probs * int(len(X_train) / len(bin_probs)) # extend probabilities across bin elements
train_probs.extend([0.001]*(len(X_train) - len(train_probs))) # a small fix to match number of elements
train_probs = train_probs/np.sum(train_probs) # normalize
indices = np.random.choice(range(len(X_train)), replace=False, size=50000, p=train_probs)
out_images = X_train[indices.astype(int)] # this is where I get the error
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TypeError: only integer scalar arrays can be converted to …
Run Code Online (Sandbox Code Playgroud)

python numpy python-3.x

14
推荐指数
3
解决办法
6万
查看次数

在Python中随机化列表

我想知道是否有一种很好的方法来"动摇"Python中的项目列表.例如,[1,2,3,4,5]可能会被动摇/随机化[3,1,4,2,5](任何有序的排序).

python random list

11
推荐指数
1
解决办法
3万
查看次数

在`x = xy()`之后,为什么`x`变成了`None`而不是被修改(可能导致“AttributeError:'NoneType'对象没有属性”)?

如果您的问题作为此问题的重复项而被关闭,那是因为您有一些通用形式的代码

x = X()
# later...
x = x.y()
# or:
x.y().z()
Run Code Online (Sandbox Code Playgroud)

其中X是某种类型,它提供了y旨在z变异修改)对象(X类型的实例)的方法。这可以适用于:

  • 可变的内置类型,例如listdictsetbytearray
  • 标准库(尤其是 Tkinter 小部件)或第三方库提供的类。

这种形式的代码很常见,但并不总是错误的。问题的明显迹象是:

  • x.y().z()一样,会引发异常AttributeError: 'NoneType' object has no attribute 'z'

  • 有了x = x.y(),x就变成None, 而不是被修改的对象。这可能会被后来的错误结果发现,或者被像上面这样的异常(x.z()稍后尝试时)发现。

Stack Overflow 上有大量关于这个问题的现有问题,所有这些问题实际上都是同一个问题。之前甚至有多次尝试在特定上下文中涵盖同一问题的规范。然而,理解问题并不需要上下文,因此这里尝试一般性地回答:

代码有什么问题吗?为什么这些方法会这样,我们如何解决这个问题?


另请注意,当尝试使用 alambda或列表理解)来产生副作用时,会出现类似的问题。

同样明显的问题可能是由因其他原因返回的方法引起的None …

python attributeerror command-query-separation nonetype

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

生成巨大列表的随机排列(在Python中)

我想创建一个随机排列的数字[1,2,...,N],这N是一个很大的数字.因此,我不希望将所有排列元素存储在内存中,而是迭代我的特定排列的元素,而不将前值保存在内存中.

知道怎么用Python做到这一点?

python algorithm iterator permutation

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

列表中元素的随机位置

可能重复:
在python中混洗对象列表

如果我有一个清单:

a = ["a","b","c",...,"zzz"]

我如何随机洗牌其元素以获取列表:

b = ["c","zh",......]

没有消耗大量的系统资源?

python

4
推荐指数
2
解决办法
5555
查看次数