1
>>> x=[("x1","x2","x3"),("x1","x2"),("x2","x3"),("x3","x4")]
>>> x
[('x1', 'x2', 'x3'), ('x1', 'x2'), ('x2', 'x3'), ('x3', 'x4')]

I want to delete the tuple in the list--x ,if len(x[id])==3 ,len(x[0]==3) ,so it will be deleted ,[('x1', 'x2'), ('x2', 'x3'), ('x3', 'x4')] is what i wanted,how can i write the code?

[del element if len(element[id]==3) for id,element in enumerate(x)]

invalid syntax.
smci
  • 32,567
  • 20
  • 113
  • 146
showkey
  • 482
  • 42
  • 140
  • 295

1 Answers1

6

Use a list comprehension to filter elements, keeping everything not length 3:

x = [el for el in x if len(el) != 3]

Demo:

>>> x = [('x1', 'x2', 'x3'), ('x1', 'x2'), ('x2', 'x3'), ('x3', 'x4')]
>>> [el for el in x if len(el) != 3]
[('x1', 'x2'), ('x2', 'x3'), ('x3', 'x4')]
Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343