相关疑难解决方法(0)

3119
推荐指数
17
解决办法
284万
查看次数

118
推荐指数
7
解决办法
11万
查看次数

附加到元组中定义的列表 - 这是一个错误吗?

所以我有这个代码:

tup = ([1,2,3],[7,8,9])
tup[0] += (4,5,6)
Run Code Online (Sandbox Code Playgroud)

这会产生此错误:

TypeError: 'tuple' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

虽然这段代码:

tup = ([1,2,3],[7,8,9])
try:
    tup[0] += (4,5,6)
except TypeError:
    print tup
Run Code Online (Sandbox Code Playgroud)

打印这个:

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

这种行为有望吗?

注意

我意识到这不是一个非常常见的用例.但是,虽然预计会出现错误,但我没想到列表会发生变化.

python tuples list

37
推荐指数
3
解决办法
2027
查看次数

Python传递列表作为参数

如果我要运行此代码:

def function(y):
    y.append('yes')
    return y

example = list()
function(example)
print(example)
Run Code Online (Sandbox Code Playgroud)

为什么它会返回['yes'],即使我没有直接更改变量'example',我怎么能修改代码以便'example'不受函数的影响?

python arguments function list

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

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

python中"append"和"+"的区别是什么?

我不知道f()和之间有什么区别g().

在函数中f,只要调用函数,就会累积列表L.

但在功能上g,它不..

def f(a, L=[]):
    L.append([2]);
    print(L);

def g(a, L=[]):
    L = L+[2];
    print(L);

print("f:")
f(1) # [[2]]
f(2) # [[2], [2]]
f(3) # [[2], [2], [2]]

print("g:")
g(1) # [2]
g(2) # [2]
g(3) # [2]
Run Code Online (Sandbox Code Playgroud)

python

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

+和+ =运算符不同?

>>> c = [1, 2, 3]
>>> print(c, id(c))
[1, 2, 3] 43955984
>>> c += c
>>> print(c, id(c))
[1, 2, 3, 1, 2, 3] 43955984
>>> del c
>>> c = [1, 2, 3]
>>> print(c, id(c))
[1, 2, 3] 44023976
>>> c = c + c
>>> print(c, id(c))
[1, 2, 3, 1, 2, 3] 26564048
Run Code Online (Sandbox Code Playgroud)

有什么不同?是+ =和+不应该仅仅是语法糖?

python list operators

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

在python中,当我们为循环做什么时,循环变量和列表中的元素之间的关系是什么?

这里有几个列表:a,b等我想分别对它们进行一些更改,但我对for循环的行为感到困惑.

例如:如果我们这样做

a, b = range(5), range(5,10)
for x in [a, b]: x += [0]
print(a,b)
Run Code Online (Sandbox Code Playgroud)

我们得到

([0, 1, 2, 3, 4, 0], [5, 6, 7, 8, 9, 0])
Run Code Online (Sandbox Code Playgroud)

a,b被修改.

但如果我们这样做

a, b = range(5), range(5,10)
for x in [a, b]: x = x + [0]
print(a,b)
Run Code Online (Sandbox Code Playgroud)

我们得到

([0, 1, 2, 3, 4], [5, 6, 7, 8, 9])
Run Code Online (Sandbox Code Playgroud)

a,b未被修改.我很困惑,x和a之间的关系是什么?我何时或如何修改a的值?顺便说一句,a + = b和a = a + b之间有什么区别?

无论如何,我找到了一个我们可以这样做的解决方案

a, b = range(5), range(5,10)
lis = [a, b]
for i, x in …
Run Code Online (Sandbox Code Playgroud)

python for-loop

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

Python列表的+ =运算符是否等同于append()或extend()?

Python列表有一个+=运营商以及appendextend方法.

如果l是一个列表,是l += ...相当于l.append(...),l.extend(...),两者或两者都不是?

python list append operators extend

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

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

[a] + [b]和[a] .extend([b])之间有什么区别?

在Python中有两种方法将列表合并在一起:

  1. ['a', 'b', 'c'] + ['x', 'y', 'z']

  2. ['a', 'b', 'c'].extend(['x', 'y', 'z'])

两种方法有什么区别?


连接超过2个列表的Pythonic方式是什么?

['a', 'b', 'c'] + [1, 2, 3] + ['x', 'y', 'z']
Run Code Online (Sandbox Code Playgroud)
gucci_list = ['a', 'b', 'c']
gucci_list.extend([1, 2, 3])
gucci_list.extend(['x', 'y', 'z'])
Run Code Online (Sandbox Code Playgroud)

结合两者怎么样?

['a', 'b', 'c'].extend([1, 2, 3] + ['x', 'y', 'z'])
Run Code Online (Sandbox Code Playgroud)

python arrays list addition python-3.x

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