python - পাইথন প্রোগ্রামিং বই pdf




পাইথন ধারণকারী একটি তালিকা দেওয়া একটি আইটেম সূচী খুঁজে (19)

একটি তালিকা ["foo", "bar", "baz"] এবং তালিকার একটি আইটেমের জন্য "bar" , আমি কিভাবে পাইথন এ তার সূচী (1) পেতে পারি?


পাইথন ধারণকারী একটি তালিকা দেওয়া একটি আইটেম সূচী খুঁজে

একটি তালিকা ["foo", "bar", "baz"] এবং তালিকার একটি তালিকা "bar" এর জন্য, পাইথনটিতে তার সূচক (1) পেতে সবচেয়ে পরিষ্কার উপায় কী?

আচ্ছা, অবশ্যই, সূচী পদ্ধতি আছে, যা প্রথম ঘটনার সূচী প্রদান করে:

>>> l = ["foo", "bar", "baz"]
>>> l.index('bar')
1

এই পদ্ধতির সাথে কয়েকটি সমস্যা রয়েছে:

  • যদি মানটি তালিকায় না থাকে তবে আপনি একটি ValueError
  • যদি তালিকার মান একের বেশি হয় তবে আপনি শুধুমাত্র প্রথমটির জন্য সূচী পাবেন

কোন মান

মান অনুপস্থিত থাকলে, আপনি ValueError ধরতে হবে।

আপনি এরকম পুনঃব্যবহারযোগ্য সংজ্ঞা দিয়ে এটি করতে পারেন:

def index(a_list, value):
    try:
        return a_list.index(value)
    except ValueError:
        return None

এবং এটি ভালো ব্যবহার করুন:

>>> print(index(l, 'quux'))
None
>>> print(index(l, 'bar'))
1

এবং এর বিপরীতটি হল যে সম্ভবত আপনার কাছে ফেরত মানটি is not বা কোনও is not হলে আপনার কাছে একটি চেক থাকবে:

result = index(a_list, value)
if result is not None:
    do_something(result)

তালিকায় একাধিক মান

যদি আপনি আরো ঘটনা হতে পারে, আপনি list.index সঙ্গে সম্পূর্ণ তথ্য পাবেন না :

>>> l.append('bar')
>>> l
['foo', 'bar', 'baz', 'bar']
>>> l.index('bar')              # nothing at index 3?
1

আপনি সূচী একটি তালিকা বোঝার মধ্যে enumerate হতে পারে:

>>> [index for index, v in enumerate(l) if v == 'bar']
[1, 3]
>>> [index for index, v in enumerate(l) if v == 'boink']
[]

যদি আপনার কোনও ঘটনা না থাকে তবে আপনি ফলাফলটির বুলিয়ান চেক দিয়ে এটি পরীক্ষা করতে পারেন, অথবা ফলাফলগুলির উপর লুপ করলে কেবল কিছু করবেন না:

indexes = [index for index, v in enumerate(l) if v == 'boink']
for index in indexes:
    do_something(index)

ভাল তথ্য pandas সঙ্গে munging

যদি আপনার প্যান্ডাস থাকে তবে আপনি সহজেই সিরিজ অবজেক্টের সাথে এই তথ্যটি পেতে পারেন:

>>> import pandas as pd
>>> series = pd.Series(l)
>>> series
0    foo
1    bar
2    baz
3    bar
dtype: object

একটি তুলনা চেক Booleans একটি সিরিজ ফিরে আসবে:

>>> series == 'bar'
0    False
1     True
2    False
3     True
dtype: bool

সাবস্ক্রিপশন নোটেশন অনুসারে সিরিজের বুলিয়ানগুলির যে সিরিজটি পাস করুন, এবং আপনি কেবল মিলযুক্ত সদস্যদের পাবেন:

>>> series[series == 'bar']
1    bar
3    bar
dtype: object

যদি আপনি কেবল সূচী চান তবে সূচী বৈশিষ্ট্যটি পূর্ণসংখ্যাগুলির একটি সিরিজ প্রদান করে:

>>> series[series == 'bar'].index
Int64Index([1, 3], dtype='int64')

এবং যদি আপনি তাদের একটি তালিকা বা tuple মধ্যে চান, শুধু কন্সট্রাকটর তাদের পাস:

>>> list(series[series == 'bar'].index)
[1, 3]

হ্যাঁ, আপনি enumerate সঙ্গে একটি তালিকা বোঝার ব্যবহার করতে পারে, কিন্তু আমার মতে, আপনি পাইথন মধ্যে সমতা জন্য পরীক্ষা করছেন, সি হ্যান্ডেল মধ্যে লিখিত অন্তর্নির্মিত কোড লেট করার পরিবর্তে এটি করছেন:

>>> [i for i, value in enumerate(l) if value == 'bar']
[1, 3]

এই একটি XY সমস্যা ?

XY সমস্যাটি আপনার প্রকৃত সমস্যার পরিবর্তে আপনার প্রচেষ্টা সমাধান সম্পর্কে জিজ্ঞাসা করছে।

কেন আপনি একটি তালিকায় একটি উপাদান দেওয়া সূচক প্রয়োজন মনে করেন?

যদি আপনি ইতিমধ্যে মূল্য জানেন, তবে কেন এটি একটি তালিকাতে আপনার কাছে কেন উদ্বিগ্ন?

যদি মান নেই, মান ValueError ধরার পরিবর্তে ValueError হয় - এবং আমি ValueError এড়াতে পছন্দ করি।

আমি সাধারণত যে কোনও তালিকাতে পুনরাবৃত্তি করছি, তাই সাধারণত আমি কোনও আকর্ষণীয় তথ্যকে পয়েন্টার রাখব, সংখ্যার সাথে সূচকটি পেয়ে যাব ।

আপনি যদি ডাটা মুঙ্গ করছেন তবে সম্ভবত আপনার প্যান্ডাস ব্যবহার করা উচিত - যা আমি দেখানো বিশুদ্ধ পাইথন ওয়ার্কারাউন্ডগুলির চেয়ে অনেক বেশি মার্জিত সরঞ্জাম।

আমি list.index প্রয়োজন মনে রাখবেন না, নিজেকে। যাইহোক, আমি পাইথন স্ট্যান্ডার্ড লাইব্রেরিটি দেখেছি এবং আমি এর জন্য কিছু চমৎকার ব্যবহার দেখেছি।

জিআইআই এবং টেক্সট idlelib জন্য idlelib , idlelibidlelib জন্য অনেকগুলি ব্যবহার রয়েছে।

keyword মডিউল এটি ম্যাপপ্রেমিংয়ের মাধ্যমে কীওয়ার্ডগুলির তালিকাটি স্বয়ংক্রিয়ভাবে পুনরুত্পাদন করতে মডিউলটিতে মন্তব্য চিহ্নিতকারী খুঁজতে এটি ব্যবহার করে।

মনে হচ্ছে লিব / মেলবক্সে এটি একটি আদেশযুক্ত ম্যাপিং এর মতো ব্যবহার করছে বলে মনে হচ্ছে:

key_list[key_list.index(old)] = new

এবং

del key_list[key_list.index(key)]

লিবি / http / cookiejar.py তে, পরবর্তী মাসে পেতে ব্যবহৃত বলে মনে হচ্ছে:

mon = MONTHS_LOWER.index(mon.lower())+1

লিব / tarfile.py এটিকে একটি আইটেমের উপরে একটি ফাঁকা পেতে distutils অনুরূপ:

members = members[:members.index(tarinfo)]

লিব / pickletools.py:

numtopop = before.index(markobject)

এই ব্যবহারগুলি কি সাধারণ বলে মনে হচ্ছে যে তারা সীমাবদ্ধ list.index তালিকাগুলিতে কাজ করে বলে মনে হয় (তালিকাভুক্ত list.index ( list.index ) এর জন্য O (n) list.index জন্য list.index , এবং এটি বেশিরভাগ ক্ষেত্রে list.index ব্যবহৃত হয় (এবং ক্ষেত্রে UI নিষ্ক্রিয়)।

তার জন্য ব্যবহারের ক্ষেত্রে আছে যদিও, তারা মোটামুটি অস্বাভাবিক। আপনি যদি নিজেকে এই উত্তরটির সন্ধান করেন তবে নিজেকে জিজ্ঞাসা করুন যে আপনি যা করছেন তা আপনার ব্যবহারের ক্ষেত্রে ভাষা দ্বারা সরবরাহিত সরঞ্জামগুলির সর্বাধিক সরাসরি ব্যবহার।


এবং এখন সম্পূর্ণ ভিন্ন কিছু...

... সূচী পাওয়ার আগে আইটেমের অস্তিত্ব নিশ্চিত করার মত। এই পদ্ধতির সম্পর্কে চমৎকার জিনিস হল ফাংশন সর্বদা সূচকগুলির একটি তালিকা প্রদান করে - এমনকি যদি এটি খালি তালিকা থাকে। এটা পাশাপাশি স্ট্রিং সঙ্গে কাজ করে।

def indices(l, val):
    """Always returns a list containing the indices of val in the_list"""
    retval = []
    last = 0
    while val in l[last:]:
            i = l[last:].index(val)
            retval.append(last + i)
            last += i + 1   
    return retval

l = ['bar','foo','bar','baz','bar','bar']
q = 'bar'
print indices(l,q)
print indices(l,'bat')
print indices('abcdaababb','a')

একটি মিথস্ক্রিয় পাইথন উইন্ডোতে পেস্ট করা হলে:

Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def indices(the_list, val):
...     """Always returns a list containing the indices of val in the_list"""
...     retval = []
...     last = 0
...     while val in the_list[last:]:
...             i = the_list[last:].index(val)
...             retval.append(last + i)
...             last += i + 1   
...     return retval
... 
>>> l = ['bar','foo','bar','baz','bar','bar']
>>> q = 'bar'
>>> print indices(l,q)
[0, 2, 4, 5]
>>> print indices(l,'bat')
[]
>>> print indices('abcdaababb','a')
[0, 4, 5, 7]
>>> 

হালনাগাদ

হেড ডাউন ডাউন পাইথন বিকাশের আরেক বছর পর, আমি আমার মূল উত্তর দ্বারা একটু বিব্রত বোধ করছি, তাই রেকর্ডটি সরাসরি সেট করতে, অবশ্যই উপরের কোডটি ব্যবহার করতে পারে; যাইহোক, একই আচরণ পেতে আরও বেশি মূঢ় উপায় enumerate () ফাংশন সহ তালিকা বোঝার ব্যবহার করা হবে।

এটার মতো কিছু:

def indices(l, val):
    """Always returns a list containing the indices of val in the_list"""
    return [index for index, value in enumerate(l) if value == val]

l = ['bar','foo','bar','baz','bar','bar']
q = 'bar'
print indices(l,q)
print indices(l,'bat')
print indices('abcdaababb','a')

যা, একটি মিথস্ক্রিয় পাইথন উইন্ডো ফলন যখন উত্পাদিত:

Python 2.7.14 |Anaconda, Inc.| (default, Dec  7 2017, 11:07:58) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def indices(l, val):
...     """Always returns a list containing the indices of val in the_list"""
...     return [index for index, value in enumerate(l) if value == val]
... 
>>> l = ['bar','foo','bar','baz','bar','bar']
>>> q = 'bar'
>>> print indices(l,q)
[0, 2, 4, 5]
>>> print indices(l,'bat')
[]
>>> print indices('abcdaababb','a')
[0, 4, 5, 7]
>>> 

এবং এখন, এই প্রশ্নটি এবং সমস্ত উত্তরগুলির পর্যালোচনা করার পরে, আমি বুঝতে পেরেছি যে তার পূর্বের উত্তরে যা তা ঠিক। সেই সময়ে আমি মূলত এই প্রশ্নের উত্তর দিয়েছিলাম, আমিও সেই উত্তরটি দেখতে পাই নি, কারণ আমি এটি বুঝতে পারিনি। আমি আশা করি যে আমার কিছুটা শব্দের উদাহরণ বুঝতে সাহায্য করবে।

যদি উপরের কোডের একক লাইন এখনও আপনার কাছে কোনও ধারণা না দেয় তবে আমি আপনাকে Google এর পাইথন তালিকা বোঝার পরামর্শ দিই এবং নিজেকে পরিচিত করার জন্য কয়েক মিনিট সময় নিতে। এটি কেবল সেই শক্তিশালী বৈশিষ্ট্যগুলির মধ্যে একটি যা কোডটিকে বিকাশ করার জন্য পাইথন ব্যবহার করে আনন্দিত করে।


সমস্ত ঘটনা এবং তালিকায় এক বা একাধিক (অভিন্ন) আইটেমের অবস্থান

সংখ্যাসূচক (alist) দিয়ে আপনি প্রথম উপাদানটি (এন) সংরক্ষণ করতে পারেন যা তালিকার সূচী যখন উপাদান x আপনি যা খুঁজছেন তার সমান।

>>> alist = ['foo', 'spam', 'egg', 'foo']
>>> foo_indexes = [n for n,x in enumerate(alist) if x=='foo']
>>> foo_indexes
[0, 3]
>>>

চলুন আমাদের ফাংশন findindex করা

এই ফাংশনটি আইটেম এবং তালিকাটি আর্গুমেন্ট হিসাবে নেয় এবং তালিকাতে আইটেমটির অবস্থানটি ফেরত দেয়, যেমন আমরা আগে দেখেছি।

def indexlist(item2find, list_or_string):
  "Returns all indexes of an item in a list or a string"
  return [n for n,item in enumerate(list_or_string) if item==item2find]

print(indexlist("1", "010101010"))

আউটপুট

[1, 3, 5, 7]

সহজ

for n, i in enumerate([1, 2, 3, 4, 1]):
    if i == 1:
        print(n)

আউটপুট:

0
4

@TerryA দ্বারা নির্দেশিত হিসাবে, অনেকগুলি উত্তর একটি সূচী কীভাবে খুঁজে পাওয়া যায় তা আলোচনা করে।

more_itertools একটি তৃতীয় পক্ষের লাইব্রেরি যা একটি পুনরাবৃত্তির মধ্যে একাধিক সূচক সনাক্ত করার সরঞ্জামগুলি সহ।

প্রদত্ত

import more_itertools as mit


iterable = ["foo", "bar", "baz", "ham", "foo", "bar", "baz"]

কোড

একাধিক পর্যবেক্ষণ সূচক দেখুন:

list(mit.locate(iterable, lambda x: x == "bar"))
# [1, 5]

একাধিক আইটেম পরীক্ষা করুন:

list(mit.locate(iterable, lambda x: x in {"bar", "ham"}))
# [1, 3, 5]

more_itertools.locate সাথে আরও বিকল্প দেখুন। more_itertools


Python শেখার ক্ষেত্রে সত্যিই সহায়ক একটি বিষয় হল ইন্টারেক্টিভ হেল্প ফাংশন ব্যবহার করা:

>>> help(["foo", "bar", "baz"])
Help on list object:

class list(object)
 ...

 |
 |  index(...)
 |      L.index(value, [start, [stop]]) -> integer -- return first index of value
 |

যা প্রায়ই আপনি খুঁজছেন পদ্ধতি আপনি নেতৃত্ব হবে।


আইটেম তালিকা এক্স আইটেম তালিকা L :

idx = L.index(x) if (x in L) else -1

আরেকটি বিকল্প

>>> a = ['red', 'blue', 'green', 'red']
>>> b = 'red'
>>> offset = 0;
>>> indices = list()
>>> for i in range(a.count(b)):
...     indices.append(a.index(b,offset))
...     offset = indices[-1]+1
... 
>>> indices
[0, 3]
>>> 

আসুন আপনার নামের তালিকাতে lst নাম দিন। এক তালিকা lst একটি numpy array রূপান্তর করতে পারেন। এবং, তারপর তালিকাতে নির্বাচিত আইটেম সূচী পেতে numpy.where ব্যবহার করুন। নিম্নলিখিতটি আপনি এটি বাস্তবায়ন করবে উপায়।

 import numpy as np lst = ["foo", "bar", "baz"] #lst: : 'list' data type lst_np = np.array(lst) #lst_np: 'numpy.ndarray' index = np.where( lst_np == 'bar')[0][0] #index: 'numpy.int64' data type print index 1 

উপাদান তালিকায় না হলে একটি সমস্যা দেখা দেবে। এই ফাংশন সমস্যা পরিচালনা করে:

# if element is found it returns index of element else returns None

def find_element_in_list(element, list_element):
    try:
        index_element = list_element.index(element)
        return index_element
    except ValueError:
        return None

এই একটি আরো কার্যকরী উত্তর আছে।

list(filter(lambda x: x[1]=="bar",enumerate(["foo", "bar", "baz", "bar", "baz", "bar", "a", "b", "c"])))

আরো জেনেরিক ফর্ম:

def get_index_of(lst, element):
    return list(map(lambda x: x[0],\
       (list(filter(lambda x: x[1]==element, enumerate(lst))))))

তালিকার কোনও পুনরাবৃত্তি আইটেম নেই যা আপনাকে সূচকের চেক করার প্রয়োজন আছে

 eg: li=[10,20,30] # here need to get index of 20 means
     li.index(20) # will work properly because 20 is not repeated

যদি এর পুনরাবৃত্তি মানে এটি আপনাকে শুধুমাত্র প্রথম সূচী দেবে

আইটেম উপস্থিত থাকে যেখানে আপনি সব সূচক পেতে প্রয়োজন

eg: li=[10,20,30,20,40, 50, 10] # here need to get index of 20 means its have 2 index (1,3) 

আপনি এটা করতে হবে যে পেতে

 li=[10,20,30,20,40, 50, 10]
 [i for i, e in enumerate(li) if e == 20]

তারপরে আপনি সূচকের একটি তালিকা যেমন O / P হিসাবে পাবেন [1,3]


পাইথন index() পদ্ধতি আইটেম খুঁজে পাওয়া না গেলে একটি ত্রুটি ছোঁড়ে, যা sucks!

সুতরাং পরিবর্তে আপনি এটি indexOf() এর indexOf() ফাংশনের অনুরূপ করতে পারেন যা -1 যদি আইটেমটি পাওয়া যায় নি:

    try:
        index = array.index('search_keyword')
    except ValueError:
        index = -1

যদি আপনি সব সূচী চান, তাহলে আপনি NumPy ব্যবহার করতে পারেন:

import numpy as np

array = [1, 2, 1, 3, 4, 5, 1]
item = 1
np_array = np.array(array)
item_index = np.where(np_array==item)
print item_index
# Out: (array([0, 2, 6], dtype=int64),)

এটা পরিষ্কার, পঠনযোগ্য সমাধান।


যারা আমার মত অন্য ভাষা থেকে আসছে তাদের জন্য সহজ সরল লুপের সাথে এটি বোঝার এবং এটি ব্যবহার করা সহজ:

mylist = ["foo", "bar", "baz", "bar"]
newlist = enumerate(mylist)
for index, item in newlist:
  if item == "bar":
    print(index, item)

আমি কৃতজ্ঞ সুতরাং তাই কি enumerate ঠিক আছে? । যে আমাকে বুঝতে সাহায্য করেছে।


শুধু আপনি সঙ্গে যেতে পারেন

a = [['hand', 'head'], ['phone', 'wallet'], ['lost', 'stock']]
b = ['phone', 'lost']

res = [[x[0] for x in a].index(y) for y in b]

সমস্ত সূচী পেতে:

 indexes = [i for i,x in enumerate(xs) if x == 'foo']

index() মান প্রথম সূচক ফেরত!

| সূচক (...)
| L.index (মান, [শুরু, [স্টপ]]) -> পূর্ণসংখ্যা - মানের প্রথম সূচী ফেরত পাঠান

def all_indices(value, qlist):
    indices = []
    idx = -1
    while True:
        try:
            idx = qlist.index(value, idx+1)
            indices.append(idx)
        except ValueError:
            break
    return indices

all_indices("foo", ["foo","bar","baz","foo"])

>>> ["foo", "bar", "baz"].index("bar")
1

রেফারেন্স: তথ্য কাঠামো> তালিকা উপর আরো

Caveats অনুসরণ করুন

উল্লেখ্য, এটি সম্ভবত জিজ্ঞাসিত প্রশ্নটির উত্তর দেওয়ার সবচেয়ে পরিষ্কার উপায় হলেও index list API এর তুলনায় দুর্বল উপাদান, এবং আমি মনে করি শেষবার আমি ক্রোধে এটি ব্যবহার করতে পারি না। এই মন্তব্যগুলিতে আমার কাছে উল্লেখ করা হয়েছে যে এই উত্তরটি ব্যাপকভাবে উল্লেখ করা হয়েছে, এটি আরও সম্পূর্ণ করা উচিত। list.index সম্পর্কে কিছু list.index অনুসরণ করুন। প্রাথমিকভাবে এটির জন্য ডকস্ট্রিংয়ের দিকে নজর দেওয়ার অর্থ সম্ভবতঃ

>>> print(list.index.__doc__)
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.

তালিকা দৈর্ঘ্য মধ্যে লিনিয়ার সময় জটিলতা

একটি index কল তালিকার প্রতিটি উপাদানকে ক্রম অনুসারে চেক করে, এটি একটি ম্যাচ খুঁজে না পায়। আপনার তালিকাটি যদি দীর্ঘ হয়, এবং আপনি মোটেও এটি জানেন না যেখানে তালিকাটি মোটামুটিভাবে জানেন, তবে এই অনুসন্ধানটি একটি বাধা হতে পারে। যে ক্ষেত্রে, আপনি একটি ভিন্ন তথ্য গঠন বিবেচনা করা উচিত। মনে রাখবেন যে যদি আপনি মিল খুঁজে পেতে মোটামুটি জানেন তবে আপনি সূচীকে একটি ইঙ্গিত দিতে পারেন। উদাহরণস্বরূপ, এই স্নিপেটে, l.index(999_999, 999_990, 1_000_000) সরল l.index(999_999) তুলনায় তীব্রতার প্রায় পাঁচটি আদেশ, কারণ প্রাক্তনকে শুধুমাত্র 10 টি এন্ট্রি অনুসন্ধান করতে হবে, যখন পরবর্তীটি মিলিয়ন অনুসন্ধান করবে:

>>> import timeit
>>> timeit.timeit('l.index(999_999)', setup='l = list(range(0, 1_000_000))', number=1000)
9.356267921015387
>>> timeit.timeit('l.index(999_999, 999_990, 1_000_000)', setup='l = list(range(0, 1_000_000))', number=1000)
0.0004404920036904514

শুধুমাত্র তার যুক্তি প্রথম ম্যাচ সূচী ফেরত

index অনুসন্ধানের জন্য একটি কল এটি একটি ম্যাচ খুঁজে না হওয়া পর্যন্ত অনুসন্ধান করে এবং সেখানে থামে। যদি আপনি আরো মিলের সূচকের প্রয়োজন বোধ করেন, তবে আপনার একটি তালিকা বোঝার বা জেনারেটর অভিব্যক্তি ব্যবহার করা উচিত।

>>> [1, 1].index(1)
0
>>> [i for i, e in enumerate([1, 2, 1]) if e == 1]
[0, 2]
>>> g = (i for i, e in enumerate([1, 2, 1]) if e == 1)
>>> next(g)
0
>>> next(g)
2

সর্বাধিক জায়গা যেখানে আমি একবার index ব্যবহার করতাম, আমি এখন তালিকা বোঝার বা জেনারেটর এক্সপ্রেশন ব্যবহার করি কারণ তারা আরো সাধারণ হয়। সুতরাং যদি আপনি index জন্য পৌঁছাতে বিবেচনা করছেন তবে এই চমৎকার পাইথন বৈশিষ্ট্যগুলি দেখুন।

তালিকা তালিকা উপস্থিত না হলে থ্রেশ

আইটেম উপস্থিত না হলে একটি ValueError index ফলাফল একটি কল।

>>> [1, 1].index(2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 2 is not in list

আইটেম তালিকায় উপস্থিত নাও হতে পারে, আপনি হয় উচিত

  1. item in my_list (পরিষ্কার, পঠনযোগ্য পদ্ধতির), বা item in my_list সাথে item in my_list জন্য প্রথমে এটি পরীক্ষা করুন
  2. ValueError ব্লক try/except index কলটি মোড়ানো করুন (সম্ভবত দ্রুত, অনুসন্ধানের তালিকাটি দীর্ঘতর হলে এবং আইটেম সাধারণত উপস্থিত থাকে।)

name ="bar"
list = [["foo", 1], ["bar", 2], ["baz", 3]]
new_list=[]
for item in list:
    new_list.append(item[0])
print(new_list)
try:
    location= new_list.index(name)
except:
    location=-1
print (location)

স্ট্রিং তালিকাতে না থাকলে এটি অ্যাকাউন্টের জন্য, যদি তালিকায় না থাকে তবে অবস্থান = -1





list