সুতরাং আপনি তালিকার একটি তালিকা তৈরি করতে চান ... আমাদের খালি তালিকা দিয়ে শুরু করা দরকার
list_of_lists = []
এরপরে, আমরা ফাইলের বিষয়বস্তু পড়ি, এক এক করে লাইন
with open('data') as f:
for line in f:
inner_list = [elt.strip() for elt in line.split(',')]
# in alternative, if you need to use the file content as numbers
# inner_list = [int(elt.strip()) for elt in line.split(',')]
list_of_lists.append(inner_list)
একটি সাধারণ ব্যবহারের ক্ষেত্রে কলামার ডেটা হয়, তবে আমাদের স্টোরেজগুলির ইউনিটগুলি ফাইলের সারিগুলি হয় যে আমরা একে একে পড়েছি তাই আপনি
আপনার তালিকাগুলির তালিকাটি স্থানান্তর করতে চাইতে পারেন । নিম্নলিখিত আইডিয়োম দিয়ে এটি করা যেতে পারে
by_cols = zip(*list_of_lists)
আর একটি সাধারণ ব্যবহার প্রতিটি কলামে একটি নাম দেওয়া
col_names = ('apples sold', 'pears sold', 'apples revenue', 'pears revenue')
by_names = {}
for i, col_name in enumerate(col_names):
by_names[col_name] = by_cols[i]
যাতে আপনি একজাতীয় ডেটা আইটেমগুলিতে পরিচালনা করতে পারেন
mean_apple_prices = [money/fruits for money, fruits in
zip(by_names['apples revenue'], by_names['apples_sold'])]
আমি যা লিখেছি তার বেশিরভাগই csv
স্ট্যান্ডার্ড লাইব্রেরি থেকে মডিউলটি ব্যবহার করে দ্রুত করা যায় । অন্য তৃতীয় পক্ষের মডিউলটি হ'ল pandas
এটি আপনাকে একটি সাধারণ ডেটা বিশ্লেষণের বেশিরভাগ দিক স্বয়ংক্রিয় করতে দেয় (তবে বেশ কয়েকটি নির্ভরতা রয়েছে)।
আপডেট পাইথন 2 যদিও zip(*list_of_lists)
রিটার্ন একটি পৃথক (পক্ষান্তরিত) তালিকার তালিকা, পাইথন 3 অবস্থা পরিবর্তিত হয়েছে এবং zip(*list_of_lists)
আয় একটি জিপ বস্তুর যে subscriptable নয়।
আপনার যদি সূচিকৃত অ্যাক্সেসের প্রয়োজন হয় তবে আপনি ব্যবহার করতে পারেন
by_cols = list(zip(*list_of_lists))
এটি আপনাকে পাইথনের উভয় সংস্করণে তালিকার একটি তালিকা দেয়।
অন্যদিকে, আপনার যদি সূচিকৃত অ্যাক্সেসের প্রয়োজন না হয় এবং আপনি যা চান তা কেবল কলামের নাম অনুসারে সূচিযুক্ত অভিধান বানাতে হবে, একটি জিপ অবজেক্ট ঠিক আছে ...
file = open('some_data.csv')
names = get_names(next(file))
columns = zip(*((x.strip() for x in line.split(',')) for line in file)))
d = {}
for name, column in zip(names, columns): d[name] = column