जवाबों:
अगर आप चाहते हैं कि पहला नंबर मैच के लिए हो तो आप इसे इस तरह से कर सकते हैं:
[item for item in a if item[0] == 1]
यदि आप उनमें से 1 के साथ टुपल्स खोज रहे हैं:
[item for item in a if 1 in item]
ऐसा करने के लिए वास्तव में एक चतुर तरीका है जो किसी भी सूची के लिए उपयोगी है जहां प्रत्येक ट्यूपल का आकार 2 है: आप अपनी सूची को एक शब्दकोश में बदल सकते हैं।
उदाहरण के लिए,
test = [("hi", 1), ("there", 2)]
test = dict(test)
print test["hi"] # prints 1
dict(X)
X को एक ऐसे शब्दकोश में रूपांतरित करता है जहाँ किसी भी सामान्य तत्व का अंतिम टपल होता है, जिसका उपयोग किया जाता है। ओपी के उदाहरण में, यह (1,4) दोनों (1,2) और (1,4) दोनों के विपरीत होगा।
सूची की समझ पर पढ़ें
[ (x,y) for x, y in a if x == 1 ]
जनरेटर कार्यों और yield
कथन को भी पढ़ें ।
def filter_value( someList, value ):
for x, y in someList:
if x == value :
yield x,y
result= list( filter_value( a, 1 ) )
if x == 1
होना चाहिएif x == value
[tup for tup in a if tup[0] == 1]
for item in a:
if 1 in item:
print item
या takewhile
, (इसके अलावा, अधिक मूल्यों का उदाहरण दिखाया गया है):
>>> a= [(1,2),(1,4),(3,5),(5,7),(0,2)]
>>> import itertools
>>> list(itertools.takewhile(lambda x: x[0]==1,a))
[(1, 2), (1, 4)]
>>>
यदि नहीं, तो:
>>> a= [(1,2),(3,5),(1,4),(5,7)]
>>> import itertools
>>> list(itertools.takewhile(lambda x: x[0]==1,sorted(a,key=lambda x: x[0]==1)))
[(1, 2), (1, 4)]
>>>
यदि आप किसी भी संख्या के लिए tuple खोजना चाहते हैं जो tuple में मौजूद है तो आप उपयोग कर सकते हैं
a= [(1,2),(1,4),(3,5),(5,7)]
i=1
result=[]
for j in a:
if i in j:
result.append(j)
print(result)
if i==j[0] or i==j[index]
यदि आप किसी विशेष इंडेक्स में नंबर खोजना चाहते हैं तो आप इसका उपयोग भी कर सकते हैं