[英]tuples python pop and append
t2=("A","B","Hello")
alist=["Barney",["Wilma"]]
alist.append(t2)
print(alist.pop(1).extend(t2))
print(alist)
print((alist[1][2].upper()))
print(alist)
嗨,大家好。 我刚刚对元组有一个qs,因为我是python的新手。
为什么print(alist.pop(1).extend(t2))
在执行时没有显示?
为什么下面的print(a list)
给出['Barney', ('A', 'B', 'Hello')]
而不在列表内打开元组,因为使用的函数是扩展的而不是追加的?
alist=["Hello"] t1=(1,2,[3,4],5,6) t1[2].append(alist) print(t1) t1[2].pop().append(t1) print(a list)
qs-为什么在最后打印['Hello', (1, 2, [3, 4], 5, 6)]
中打印(列表)? 是因为上一句话中所汇集的东西,即Hello是alist吗?
list.extend
在适当的位置扩展列表(请参阅docs: http : list.extend
),因此不返回任何内容。 与扩展列表中没有新变量相比,包含新项的列表仍称为alist
alist打印['Barney', ('A', 'B', 'Hello')]
,因为这就是您要执行的操作。 一步步,
t2=("A","B","Hello")
alist=["Barney",["Wilma"]]
alist.append(t2) # ['Barney', ['Wilma'], ('A', 'B', 'Hello')]
pop1 = alist.pop(1) # ['Wilma']
extend1 = pop1.extend(t2) #extend1 = None, pop1 = ['Wilma', 'A', 'B', 'Hello']
print(alist.pop(1).extend(t2)) # None
print(alist) #you've popped wilma, so the rest remains: ['Barney', ('A', 'B', 'Hello')]
至于第三,这应该正是您期望的行为。 首先,从alist
弹出hello
,然后将t1
所有内容附加到刚刚弹出的东西中,即hello
。 因此,['Hello',(1、2,[3、4],5、6)]应该是您期望得到的。 您期望有所不同吗?
最后一行的print(alist)
打印['Hello', (1, 2, [3, 4], 5, 6)]
,因为当您运行t1[2].pop()
,得到的是一个引用尤其是列表,而不是任意列表元素。 因此, append(t1)
将t1
附加到实际的列表中,然后进行打印。
我将尝试回答您的前2个问题:
alist.pop(1).extend(t2)
工作方式如下:
-> alist.pop(1)
返回["Wilma"]
而alist
变为['Barney', ('A', 'B', 'Hello')]
- > ["Wilma"].extend(t2)
返回None并且仅延伸所述临时列表,而无需修改alist
print(alist)
显示['Barney', ('A', 'B', 'Hello')]
因为您之前执行过alist.append(t2)
让我们看看您的代码在这里做什么:
在第三行alist.append(t2)
, alist
是["Barney",["Wilma"], ("A","B","Hello")]
。 现在,您从列表中pop
(删除) ["Wilma"]
,并使用元组t2
扩展该列表 。 该列表将是["Wilma","A","B","Hello"]
,但是它没有任何变量,并且因为extend
就位,所以该操作的结果是None
,将被打印出来。 而且,由于威尔玛-子列表(包括其扩展名)得到了从列表中删除, alist
现在是["Barney", ("A","B","Hello")]
因此,简短地回答您的问题:
extend
的返回值为None
extend
应用于pop
的返回值,而不是alist
,但该元组在代码的前面被append
到alist
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.