কিভাবে একটি তালিকার উপাদানগুলি বিভক্ত করবেন?


85

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

my_list = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847']

\tএই ফলাফলটি পেতে আমি কীভাবে এবং তার পরে সমস্ত কিছু মুছতে পারি :

['element1', 'element2', 'element3']

উত্তর:


113

কিছুটা এইরকম:

>>> l = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847']
>>> [i.split('\t', 1)[0] for i in l]
['element1', 'element2', 'element3']

আমি প্রায় এটি বুঝতে পারি। যুক্তিটির ভিতরে 1 টি কী বিভক্ত হওয়ার পক্ষে? আমি যা অনুমান করি তার জন্য প্যারেন্সের পরে সূচক 0 হয়। আমি যা ছিল তার শূন্যতম উপাদানটি ব্যবহার করে এটি কী নতুন তালিকা তৈরি করছে? তারপরে কী 1 টি আরেকটি বিভক্ত হয়ে ওপি যেমন চেয়েছিল তেমনভাবে বাকী স্ট্রিং থেকে কার্যকরভাবে মুক্তি পাচ্ছে?
মালিক এ রুমী

4
যেহেতু তালিকায় স্ট্রিং রয়েছে, ভেরিয়েবল i একটি স্ট্রিং। সুতরাং i.split ('\ t', 1) স্ট্রিংয়ের বিভাজন () পদ্ধতিটিকে কল করে। প্রতি ডকুমেন্টেশন , এই পদ্ধতির প্রথম প্যারামিটার অনুসারে বিভক্ত করার স্ট্রিং এবং দ্বিতীয় টুকরা সম্পাদন করতে সর্বোচ্চ সংখ্যা। পদ্ধতিটি স্ট্রিংগুলির তালিকা প্রদান করে যা বিভাজন সম্পাদন করে ফলাফল, সুতরাং "[0]" ফলাফল তালিকার প্রথম বিভক্ত স্ট্রিংটি প্রদান করে।
jcl

4
আমি যখন নিজের কোডটির জন্য এটি চেষ্টা করেছি, তখন এটি একটি ত্রুটি ফিরে পেয়েছিল যে 'তালিকা' অবজেক্টটির কোনও 'বিভাজন' নেই। আমি কীভাবে এটি পেতে পারি তা নিয়ে আমি বিভ্রান্ত।
keitereth24

4
@ কিট্রেথ 24, রোমের স্ট্রিংয়ের বিভক্ত তালিকা। আপনার তালিকার একটি তালিকা থাকতে পারে
এএআই


9

তালিকার প্রতিটি উপাদান দিয়ে পুনরাবৃত্তি করার চেষ্টা করুন, তারপরে এটিকে ট্যাব অক্ষরে ভাগ করে একটি নতুন তালিকায় যুক্ত করুন।

for i in list:
    newList.append(i.split('\t')[0])

4
এটি কাজ করে, তবে তালিকার বোধগম্যতা এটি করার আরও ভাল উপায়
ডেভ

6

পরিবর্তনশীল নাম হিসাবে তালিকাটি ব্যবহার করবেন না। আপনি নিম্নলিখিত কোডটি একবার দেখে নিতে পারেন:

clist = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847', 'element5']
clist = [x[:x.index('\t')] if '\t' in x else x for x in clist]

বা ইন-প্লেস এডিটিং:

for i,x in enumerate(clist):
    if '\t' in x:
        clist[i] = x[:x.index('\t')]

2

বৈশিষ্ট্য নিষ্কাশনের জন্য আমাকে একটি তালিকা দুটি ভাগে ভাগ করতে হয়েছিল এলটি, এলসি:

ltexts = ((df4.ix[0:,[3,7]]).values).tolist()
random.shuffle(ltexts)

featsets = [(act_features((lt)),lc) 
              for lc, lt in ltexts]

def act_features(atext):
  features = {}
  for word in nltk.word_tokenize(atext):
     features['cont({})'.format(word.lower())]=True
  return features
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.