[英]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.