python - bangla - কিভাবে পাইথন মধ্যে স্ট্রিং রূপান্তরিত রূপান্তর?



পাইথন পরিচিতি তামিম শাহরিয়ার সুবিন pdf (10)

আপনি এই মত কিছু করতে পারেন:

T1 = (('13', '17', '18', '21', '32'),  
     ('07', '11', '13', '14', '28'),  
     ('01', '05', '06', '08', '15', '16'))  
new_list = list(list(int(a) for a in b if a.isdigit()) for b in T1)  
print(new_list)  

আমার একটি মাইএসকিউএল কোয়েরি থেকে এই ধরনের টুপল রয়েছে:

T1 = (('13', '17', '18', '21', '32'),
      ('07', '11', '13', '14', '28'),
      ('01', '05', '06', '08', '15', '16'))

আমি সমস্ত স্ট্রিং উপাদানগুলিকে পূর্ণসংখ্যাতে রূপান্তর করতে চাই এবং তাদেরকে তালিকাগুলির তালিকায় ফিরিয়ে আনব:

T2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]

আমি eval সঙ্গে এটি অর্জন করার চেষ্টা কিন্তু এখনো কোন শালীন ফলাফল পাওয়া যায় নি।


আপনি একটি তালিকা বোঝার সঙ্গে এটি করতে পারেন:

T2 = [[int(column) for column in row] for row in T1]

অভ্যন্তরীণ তালিকা বোঝার ( [int(column) for column in row] ) int এর অস্তিত্বযোগ্য বস্তুর ক্রমানুসারে int গুলিগুলির একটি list তৈরি করে, যেমন row দশমিক স্ট্রিংগুলি। বাইরের তালিকা বোঝার ( [... for row in T1]) ) [... for row in T1]) প্রতিটি আইটেমের জন্য অভ্যন্তরীণ তালিকা বোঝার ফলাফলগুলির একটি তালিকা তৈরি করে।

সারির যেকোন বস্তুগুলি যদি int দ্বারা রূপান্তর করা যায় না তবে কোড স্নিপেটটি ব্যর্থ হবে। যদি আপনি অ-দশমিক স্ট্রিং ধারণকারী সারি প্রক্রিয়া করতে চান তবে আপনাকে একটি স্মার্ট ফাংশন দরকার।

আপনি যদি সারির গঠনটি জানেন তবে আপনি সারির ফাংশনের একটি কল সহ অভ্যন্তরীণ তালিকা বোঝার প্রতিস্থাপন করতে পারেন। যেমন।

T2 = [parse_a_row_of_T1(row) for row in T1]

আমি এমন একটি উপলব্ধ বিকল্প ভাগ করতে চাই যা এখনও এখানে উল্লেখ করা হচ্ছে বলে মনে হচ্ছে না:

rumpy.random.permutation(x)

অ্যারের একটি এলোমেলো প্যারামিটার জেনারেট হবে। ঠিক কি আপনি জিজ্ঞাসা না, কিন্তু এটি একই প্রশ্ন একটি সম্ভাব্য সমাধান।


আমি বরং শুধুমাত্র বোঝার তালিকা ব্যবহার করে পছন্দ করবে:

[[int(y) for y in x] for x in T1]

এটা চেষ্টা কর.

x = "1"

x একটি স্ট্রিং কারণ এটির চারপাশে উদ্ধৃতি রয়েছে, তবে এটিতে একটি সংখ্যা রয়েছে।

x = int(x)

যেহেতু x এর মধ্যে সংখ্যা 1 আছে, আমি এটি একটি পূর্ণসংখ্যাতে পরিণত করতে পারি।

একটি স্ট্রিং একটি সংখ্যা কিনা তা দেখতে, আপনি এটি করতে পারেন।

def is_number(var):
    try:
        if var == int(var):
            return True
    except Exception:
        return False

x = "1"

y = "test"

x_test = is_number(x)

print(x_test)

এটি আইডিএলে মুদ্রণ করা উচিত কারণ x একটি সংখ্যা।

y_test = is_number(y)

print(y_test)

এটি আইডিএল মিথ্যাতে মুদ্রণ করা উচিত কারণ Y একটি সংখ্যা নয়।


তালিকা বোঝার ব্যবহার করে:

t2 = [map(int, list(l)) for l in t1]

পাইথন 3.5.1 জিনিসগুলি এই কাজগুলির মত:

c = input('Enter number:')
print (int(float(c)))
print (round(float(c)))

এবং

Enter number:  4.7
4
5

জর্জ।


যদি এটি শুধুমাত্র tuples এর একটি tuple হয়, rows=[map(int, row) for row in rows] মত কিছু rows=[map(int, row) for row in rows] কৌতুক করতে হবে। (সেখানে একটি তালিকা বোঝার এবং মানচিত্রের একটি কল (f, lst) রয়েছে, যা সেখানে [f (a) lst এর জন্য সমান)।

__import__("os").unlink("importantsystemfile") এর মতো কিছু আছে যদি Eval কিছু না করার জন্য আপনার ডেটাবেসে __import__("os").unlink("importantsystemfile") । সর্বদা আপনার ইনপুট যাচাই করুন (যদি অন্য কিছু না থাকে তবে ব্যতিক্রম int () যদি আপনার খারাপ ইনপুট থাকে তবে) বাড়াবে।


int( ) স্থাপন করার পরিবর্তে, float( ) যা আপনাকে পূর্ণসংখ্যা সহ দশমিক ব্যবহার করতে দেবে।


T3=[]

for i in range(0,len(T1)):
    T3.append([])
    for j in range(0,len(T1[i])):
        b=int(T1[i][j])
        T3[i].append(b)

print T3




integer