টিপলসের তালিকায় একটি উপাদান সন্ধান করুন


140

আমার একটি তালিকা আছে 'এ'

a= [(1,2),(1,4),(3,5),(5,7)]

আমাকে একটি নির্দিষ্ট সংখ্যার জন্য সমস্ত টিপলস সন্ধান করতে হবে। 1 জন্য বলুন এটি হবে

result = [(1,2),(1,4)]

আমি কেমন করে ঐটি করি?

উত্তর:


236

আপনি যদি কেবল প্রথম নম্বরটি মেলাতে চান তবে আপনি এটি এটি করতে পারেন:

[item for item in a if item[0] == 1]

আপনি যদি কেবল তাদের মধ্যে 1 টি দিয়ে টিপলগুলি অনুসন্ধান করে থাকেন:

[item for item in a if 1 in item]

115

এটি করার একটি প্রকৃতপক্ষে উপায় আছে যা টিউপসগুলির যে কোনও তালিকার জন্য কার্যকর যেখানে প্রতিটি টিপলের আকার 2 হয়: আপনি আপনার তালিকাটিকে একক অভিধানে রূপান্তর করতে পারেন।

উদাহরণ স্বরূপ,

test = [("hi", 1), ("there", 2)]
test = dict(test)
print test["hi"] # prints 1

11
ব্রুসের সমস্যায় আপনি এটি কীভাবে প্রয়োগ করবেন?
হ্যালো গুডবাই

5
ভাল উত্তর (যদিও সম্ভবত এই প্রশ্নের জন্য নয়)। পছন্দের টিপলগুলির তালিকায় কোনও মান ছিল কিনা তা নির্ধারণ করার জন্য আমার পক্ষে ভাল কাজ করেছে (উদাহরণস্বরূপ; যদি পরীক্ষায় "হাই" থাকে)
ম্যাজিকলাম্প

10
ম্যাজিক্ল্যাম্পের পরামর্শ অনুসারে এটি আসলে প্রশ্নের উত্তর দেয় না। বিশেষত, dict(X)এক্সকে এমন একটি অভিধানে রূপান্তরিত করে যেখানে কোনও সাধারণ প্রথম উপাদানটির শেষ টিপল, ব্যবহৃত হয় এমন মান। ওপি-র উদাহরণে এটি (1,4) এবং (1,4) উভয়ের বিপরীতে (1,4) ফিরে আসবে।
বিবিছফ





1

filterফাংশন এছাড়াও একটি আকর্ষণীয় সমাধান প্রদান করতে পারেন:

result = list(filter(lambda x: x.count(1) > 0, a))

যা কোনও ঘটনার জন্য তালিকায় টিপলগুলি অনুসন্ধান করে 1। যদি অনুসন্ধানটি প্রথম উপাদানের মধ্যে সীমাবদ্ধ থাকে তবে সমাধানটি এতে রূপান্তর করা যেতে পারে:

result = list(filter(lambda x: x[0] == 1, a))

1

ফিল্টার ফাংশন ব্যবহার:

>>> ডিএফ গেট_ভ্যালু (পুনরাবৃত্ত, কী_টো_ফাইন্ড):
রিটার্নের তালিকা (ফিল্টার (ল্যাম্বদা এক্স: কি-টো_ফিন্ড x, পুনরাবৃত্ত)) >>> এ = [(1,2), (1,4), (3,5), (5,7)] >>> get_values ​​(a, 1) >>> [(1, 2), (1, 4)]

1

অথবা 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)]
>>> 

0

আপনি যদি টুপলে উপস্থিত কোনও সংখ্যার জন্য টুপল অনুসন্ধান করতে চান তবে আপনি এটি ব্যবহার করতে পারেন

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]যদি বিশেষ সূচকে কোনও নম্বর অনুসন্ধান করতে চান তবে আপনি এটিও ব্যবহার করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.