contacts.remove((name,ip))
根據元組的第二部分在python中從元組列表中移除
我擁有ip並且它是唯一的。我想根據ip從聯繫人中刪除這個元組,並且不需要命名。
我剛試過這個contacts.remove((pass,ip))
,但是我遇到了一個錯誤。
contacts.remove((name,ip))
根據元組的第二部分在python中從元組列表中移除
我擁有ip並且它是唯一的。我想根據ip從聯繫人中刪除這個元組,並且不需要命名。
我剛試過這個contacts.remove((pass,ip))
,但是我遇到了一個錯誤。
contacts = [(name, ip) for name, ip in contacts if ip != removable_ip]
或
for x in xrange(len(contacts) - 1, -1, -1):
if contacts[x][1] == removable_ip:
del contacts[x]
break # removable_ip is allegedly unique
第一種方法重新綁定contacts
到排除所需的條目新創建的列表。第二種方法更新原始列表;它會倒退,以免被del
聲明在其腳下移動地毯而絆倒。
由於ip
刪除是獨一無二的,你並不需要有關修改你迭代一個容器中的所有常用的注意事項 - 因此,最簡單的方法就變成了:
for i, (name, anip) in enumerate(contacts):
if anip == ip:
del contacts[i]
break
這個回答我不能創造了問題。感謝您的解釋,但讓我總結和概括多個缺失的答案和Python 3
list = [('ADC', 3),
('UART', 1),
('RemoveMePlease', 42),
('PWM', 2),
('MeTooPlease', 6)]
list1 = [(d, q)
for d, q in list
if d not in {'RemoveMePlease', 'MeTooPlease'}]
print(list1)
for i, (d, q) in enumerate(list):
if d in {'RemoveMePlease', 'MeTooPlease'}:
del(list[i])
print(list)
'pass'是一個語句,因此不能以這種方式表達式中使用。而「無」是一個實際值,所以它也不起作用。 – 2010-05-17 23:10:34