相关疑难解决方法(0)

如何在Python中反转列表?

如何在Python中执行以下操作?

array = [0, 10, 20, 40]
for (i = array.length() - 1; i >= 0; i--)
Run Code Online (Sandbox Code Playgroud)

我需要有一个数组的元素,但从最后到开头.

python list

947
推荐指数
16
解决办法
137万
查看次数

迭代时如何从列表中删除项目?

我正在迭代Python中的元组列表,并且如果它们符合某些条件,我会尝试删除它们.

for tup in somelist:
    if determine(tup):
         code_to_remove_tup
Run Code Online (Sandbox Code Playgroud)

我应该用什么代替code_to_remove_tup?我无法弄清楚如何以这种方式删除项目.

python iteration

917
推荐指数
16
解决办法
45万
查看次数

洗牌对象列表

我在Python中有一个对象列表,我想要将它们混洗.我以为我可以使用该random.shuffle方法,但当列表是对象时,这似乎失败了.是否有一种方法可以改变对象或其他方式?

import random

class A:
    foo = "bar"

a1 = a()
a2 = a()
b = [a1, a2]

print(random.shuffle(b))
Run Code Online (Sandbox Code Playgroud)

这将失败.

python random shuffle list

723
推荐指数
12
解决办法
90万
查看次数

"=="和"是"之间有区别吗?

我的Google-fu让我失望了.

在Python中,以下两个相等的测试是否等效?

n = 5
# Test one.
if n == 5:
    print 'Yay!'

# Test two.
if n is 5:
    print 'Yay!'
Run Code Online (Sandbox Code Playgroud)

对于您要比较实例的对象(list比如说),这是否适用?

好的,所以这样的答案我的问题:

L = []
L.append(1)
if L == [1]:
    print 'Yay!'
# Holds true, but...

if L is [1]:
    print 'Yay!'
# Doesn't.
Run Code Online (Sandbox Code Playgroud)

所以==测试值测试的地方is是否是同一个对象?

python equality reference semantics

630
推荐指数
11
解决办法
33万
查看次数

列表更改意外地反映在子列表中

我需要在Python中创建一个列表列表,所以我输入以下内容:

myList = [[1] * 4] * 3
Run Code Online (Sandbox Code Playgroud)

列表看起来像这样:

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

然后我改变了最里面的一个值:

myList[0][0] = 5
Run Code Online (Sandbox Code Playgroud)

现在我的列表看起来像这样:

[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]  
Run Code Online (Sandbox Code Playgroud)

这不是我想要或期望的.有人可以解释一下发生了什么,以及如何解决这个问题?

python list mutable nested-lists

576
推荐指数
10
解决办法
3万
查看次数

浅拷贝,深度拷贝和正常分配操作之间究竟有什么区别?

import copy

a = "deepak"
b = 1, 2, 3, 4
c = [1, 2, 3, 4]
d = {1: 10, 2: 20, 3: 30}

a1 = copy.copy(a)
b1 = copy.copy(b)
c1 = copy.copy(c)
d1 = copy.copy(d)


print("immutable - id(a)==id(a1)", id(a) == id(a1))
print("immutable - id(b)==id(b1)", id(b) == id(b1))
print("mutable - id(c)==id(c1)", id(c) == id(c1))
print("mutable - id(d)==id(d1)", id(d) == id(d1))
Run Code Online (Sandbox Code Playgroud)

我得到以下结果 -

immutable - id(a)==id(a1) True
immutable - id(b)==id(b1) True
mutable - id(c)==id(c1) False
mutable - id(d)==id(d1) False
Run Code Online (Sandbox Code Playgroud)

如果我进行深度扫描 …

python copy immutability deep-copy variable-assignment

192
推荐指数
6
解决办法
9万
查看次数

python列表的值不是通过引用

我们来举个例子吧

a=['help', 'copyright', 'credits', 'license']
b=a
b.append('XYZ')
b
['help', 'copyright', 'credits', 'license', 'XYZ']
a
['help', 'copyright', 'credits', 'license', 'XYZ']
Run Code Online (Sandbox Code Playgroud)

我想在列表'b'中附加值,但列表'a'的值也已更改.
我想我不知道为什么会这样(python通过引用传递列表).
我的问题是"如何通过值传递它,以便附加'b'不会改变'a'中的值?"

python reference list

139
推荐指数
8
解决办法
15万
查看次数

Numpy数组赋值与副本

例如,如果我们有一个numpy数组A,并且我们想要一个具有相同元素的numpy数组B.

以下(见下文)方法有什么区别?什么时候分配额外的内存,什么时候不分配?

  1. B = A
  2. B[:] = A(和B[:]=A[:]?一样)
  3. numpy.copy(B, A)

python arrays numpy

85
推荐指数
3
解决办法
5万
查看次数

如何在Python中初始化空列表字典?

我尝试以编程方式创建列表字典是不允许我单独地解决字典键.每当我创建列表字典并尝试附加到一个键时,所有这些都会更新.这是一个非常简单的测试用例:

data = {}
data = data.fromkeys(range(2),[])
data[1].append('hello')
print data
Run Code Online (Sandbox Code Playgroud)

实际结果: {0: ['hello'], 1: ['hello']}

预期结果: {0: [], 1: ['hello']}

这是有效的

data = {0:[],1:[]}
data[1].append('hello')
print data
Run Code Online (Sandbox Code Playgroud)

实际和预期结果: {0: [], 1: ['hello']}

为什么fromkeys方法不能按预期工作?

python dictionary list

77
推荐指数
3
解决办法
10万
查看次数

理解*x,= lst

我正在阅读一些旧代码,试图理解它的作用,我偶然发现了这个奇怪的声明:

*x ,= p
Run Code Online (Sandbox Code Playgroud)

p是这个上下文中的列表.我一直试图弄清楚这句话的作用.据我所知,它只是设置x为的值p.例如:

p = [1,2]
*x ,= p    
print(x)
Run Code Online (Sandbox Code Playgroud)

只是给

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

这有什么不同x = p吗?知道这个语法在做什么吗?

python python-3.x iterable-unpacking

70
推荐指数
3
解决办法
4994
查看次数