[(1,2), (2,3), (4,5), (3,4), (6,7), (6,7), (3,8)]
এই তালিকার প্রতিটি টিপল থেকে আমি কীভাবে দ্বিতীয় মানটি ফিরিয়ে দেব?
পছন্দসই আউটপুট:
[2, 3, 5, 4, 7, 7, 8]
উত্তর:
একটি তালিকা বোধগম্যতা সহ ।
[x[1] for x in L]
Ignacio এর উত্তর আপনি কি চান। তবে, যেহেতু কেউ পাইথনও শিখছেন , আমি এটি আপনার জন্য ছড়িয়ে দেওয়ার চেষ্টা করি ... যেমনটি বলা হয়েছে, এটি একটি তালিকা বোঝার ( উদাহরণস্বরূপ ডাইভিয়েন্টো পাইথন 3 এ আচ্ছাদিত ) is এখানে কয়েকটি বিষয় রয়েছে:
[x[1] for x in L]
[]
কোড লাইনের চারপাশে লক্ষ্য করুন । এগুলিই একটি তালিকা সংজ্ঞায়িত করে। এটি আপনাকে বলে যে এই কোডটি একটি তালিকা ফেরত দেয়, সুতরাং এটি list
টাইপের। অতএব, এই কৌশলটিকে একটি "তালিকা উপলব্ধি" বলা হয়।L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]
উপরোক্ত কোডটি কার্যকর করার আগে আপনাকে অবশ্যই সংজ্ঞা দেওয়া উচিত ।x
এটি একটি পরিবর্তনশীল যা কেবলমাত্র উপলব্ধির মধ্যে রয়েছে - বোঝার x
বাইরে অ্যাক্সেস করার চেষ্টা করুন , বা type(x)
উপরের লাইনটি কার্যকর করার পরে টাইপ করুন এবং এটি আপনাকে জানিয়ে দেবে NameError: name 'x' is not defined
, যেখানে type(L)
ফিরে আসে <class 'list'>
।x[1]
পয়েন্ট দ্বিতীয় tuples প্রতিটি আইটেমের যেহেতু x[0]
প্রথম আইটেম প্রতিটি নির্দেশ করবে।প্রশ্ন জিজ্ঞাসা করার আগে আপনি সমস্যাটি কতটা চেষ্টা করেছেন তা বলা শক্ত, তবে সম্ভবত আপনি বুঝতে পারছেন না? আমি DiveIntoPython এর 3 য় অধ্যায় বা বোধগম্যতার কোনও সংস্থান দিয়ে কিছুটা সময় ব্যয় করব । শুভকামনা।
x
এলসি এর বাইরের সাথে শেষ মানটি আবদ্ধ থাকবে। এটি 3.x এ স্থির করা হয়েছে।
[x[1] for x in [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]]
কিন্তু এটি চোখের মতো সহজ নয়।
একটি তালিকা বোধগম্যতা একেবারে উপায়। আরও দ্রুত যা হওয়া উচিত তা হ'ল map
এবং itemgetter
।
import operator
new_list = map(operator.itemgetter(1), old_list)
ওপি গুগলে কোনও উত্তর খুঁজে পাচ্ছে না এমন মন্তব্যের জবাবে, আমি এটি করার জন্য একটি দুর্দান্ত নিষ্পাপ উপায় নির্দেশ করব।
new_list = []
for item in old_list:
new_list.append(item[1])
এটি ব্যবহার করে:
append
তালিকায় পদ্ধতিটি কল করা ।যদি কেউ কোনও ভাষা শেখার চেষ্টা করে এবং এই মৌলিক টুকরোটি নিজের জন্য একসাথে রাখতে না পারে, তবে তাদের এটিকে অনুশীলন হিসাবে দেখতে হবে এবং বিশ ঘন্টা সময় হলেও এটি নিজেরাই করা উচিত।
এক চাহিদা করা শিখতে চায় কি মনে করুন এবং যে তুলনা উপলব্ধ সরঞ্জাম । আমার দ্বিতীয় উত্তরের প্রতিটি উপাদান একটি প্রাথমিক টিউটোরিয়ালে আবৃত করা উচিত। একটি না পড়ে আপনি প্রোগ্রাম শিখতে পারবেন না ।
আপনি এর সাথে আনপ্যাকিং সিকোয়েন্সও ব্যবহার করতে পারেন zip
:
L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]
_, res = zip(*L)
print(res)
# (2, 3, 5, 4, 7, 7, 8)
এটি _
বাতিল হওয়া প্রথম উপাদানগুলি থেকে একটি টুপল তৈরি করে। কেবল দ্বিতীয়টি উত্তোলন করা সম্ভব তবে আরও ভার্জোজ:
from itertools import islice
res = next(islice(zip(*L), 1, None))
অথবা আপনি ব্যবহার করতে পারেন pandas
:
>>> import pandas as pd
>>> L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]
>>> df=pd.DataFrame(L)
>>> df[1]
0 2
1 3
2 5
3 4
4 7
5 7
6 8
Name: 1, dtype: int64
>>> df[1].tolist()
[2, 3, 5, 4, 7, 7, 8]
>>>
বা numpy
:
>>> import numpy as np
>>> L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]
>>> arr=np.array(L)
>>> arr.T[1]
array([2, 3, 5, 4, 7, 7, 8])
>>> arr.T[1].tolist()
[2, 3, 5, 4, 7, 7, 8]
>>>
a = [(0,2), (4,3), (9,9), (10,-1)]
print(list(map(lambda item: item[1], a)))