l = (1, 2, [3, 4])
l[2] += [5, 6]
A. l 变为(1, 2, [3, 4, 5, 6])
B. 抛出 TypeError 异常: "'tuple' object does not support item assignment."
C. A 和 B 都是
D. A 和 B 都不是
l = (1, 2, [3, 4])
l[2] += [5, 6]
A. l 变为(1, 2, [3, 4, 5, 6])
B. 抛出 TypeError 异常: "'tuple' object does not support item assignment."
C. A 和 B 都是
D. A 和 B 都不是
|
dacapodayApr 26, 2017
1
B
|
|
kindjeffApr 26, 2017
2
我试了, AB 都是。
|
|
weyouApr 26, 2017 via Android
3
C
|
|
beimingyouyuApr 26, 2017
4
C
|
|
HFcbyqP0iVO5KM05Apr 26, 2017 via Android
5
b = l[2]
b += [7,8] |
|
bukipApr 26, 2017
6
AB
|
|
LokiSharpApr 26, 2017 via iPhone
7
>>> l = (1, 2, [3, 4])
>>> l[2] += [5, 6] Traceback (most recent call last): File "<string>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> l (1, 2, [3, 4, 5, 6]) |
|
8
|
|
cxyfreedomApr 26, 2017 via iPhone
9
C
|
|
10
|
|
WangYanjieApr 26, 2017
11
A, B 都是
l[2].append('MeiTiaoZhan') |
|
sunbeams001Apr 27, 2017
13
的确,这样就不报错了
b = l[2] b += [5, 6] |
|
soratadoriApr 27, 2017
14
l = (1, 2, [3, 4])
try: l[2] += [5, 6] except: print(l) 有点神奇 |
|
NoAnyLoveApr 27, 2017
15
《 Fluent Python 》有详细解释这个问题
|
|
maplerayApr 27, 2017
16
|
|
mecApr 27, 2017
17
元组不可变,哪怕这种赋值都不行 l[2] = l[2]。
|
|
yanzixuanApr 27, 2017
19
@sunbeams001 你可以 L[2].extend([5,6])
|
|
AkiseAruApr 27, 2017
20
C 结果[5,6]也被赋值进去了???
|
|
billgreen1Apr 28, 2017
21
@jmc891205 我订阅了 leetcode,买了 pycharm, 很想订阅 safari,但是的确贵
|
|
seancheerMay 2, 2017
22
我觉得出现这种问题明显是 python 设计的不合理,l[2] += [5, 6];
这个表达式我个人认为应该为保证“事务的原子性”,而不应该出现上面这种报错了值又被改变了。 |
|
lln133208Jul 10, 2017
23
@billgreen1 订阅 Pycharm 的?还是之前买的一个固定版本?
|
|
billgreen1Jul 10, 2017
24
@lln133208 订阅的
|