ترجمه - tuple in python




كيفية إزالة عنصر من قائمة حسب الفهرس في بيثون؟ (11)

كيفية إزالة عنصر من قائمة حسب الفهرس في بيثون؟

لقد وجدت طريقة list.remove ، ولكن قل إنني أريد إزالة العنصر الأخير ، كيف أفعل هذا؟ يبدو أن عملية الإزالة الافتراضية تبحث في القائمة ، ولكن لا أريد إجراء أي بحث.


استخدم del وحدد العنصر الذي تريد حذفه باستخدام الفهرس:

In [9]: a = list(range(10))
In [10]: a
Out[10]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [11]: del a[-1]
In [12]: a
Out[12]: [0, 1, 2, 3, 4, 5, 6, 7, 8]

Here هو الجزء من البرنامج التعليمي.


استخدم التعليمة البرمجية التالية لإزالة عنصر من القائمة:

list = [1, 2, 3, 4]
list.remove(1)
print(list)

output = [2, 3, 4]

إذا كنت تريد إزالة بيانات عنصر الفهرس من استخدام القائمة:

list = [1, 2, 3, 4]
list.remove(list[2])
print(list)
output : [1, 2, 4]

بشكل عام ، أستخدم الطريقة التالية:

>>> myList = [10,20,30,40,50]
>>> rmovIndxNo = 3
>>> del myList[rmovIndxNo]
>>> myList
[10, 20, 30, 50]

ربما تريد pop :

a = ['a', 'b', 'c', 'd']
a.pop(1)

# now a is ['a', 'c', 'd']

بشكل افتراضي ، يزيل pop بدون أي وسيطات العنصر الأخير:

a = ['a', 'b', 'c', 'd']
a.pop()

# now a is ['a', 'b', 'c']

كما سبق ذكره ، فإن أفضل الممارسات هي دل () ؛ أو pop () إذا كنت بحاجة إلى معرفة القيمة.

الحل البديل هو إعادة تكديس العناصر التي تريدها فقط:

    a = ['a', 'b', 'c', 'd'] 

    def remove_element(list_,index_):
        clipboard = []
        for i in range(len(list_)):
            if i is not index_:
                clipboard.append(list_[i])
        return clipboard

    print(remove_element(a,2))

    >> ['a', 'b', 'd']

ايتا: هم ... لن تعمل على قيم مؤشر السلبية ، وسوف يفكر والتحديث

أقترح - أرى - أحبذ

if index_<0:index_=len(list_)+index_

سوف يكسره ... ولكن فجأة تبدو هذه الفكرة هشة للغاية. تجربة فكرية مثيرة للاهتمام على الرغم من. يبدو أنه يجب أن يكون هناك طريقة "مناسبة" للقيام بذلك مع إلحاق () / قائمة الإدراك.

التأمل


لا يبدو أنك تعمل مع قائمة من القوائم ، لذلك سأبقي هذا قصيرًا. تريد استخدام البوب ​​لأنه سيزيل العناصر وليس العناصر التي هي قوائم ، يجب عليك استخدام دل لذلك. لاستدعاء العنصر الأخير في python ، يكون "-1"

>>> test = ['item1', 'item2']
>>> test.pop(-1)
'item2'
>>> test
['item1']

هذا يعتمد على ما تريد القيام به.

إذا كنت ترغب في إرجاع العنصر الذي قمت بإزالته ، استخدم pop() :

>>> l = [1, 2, 3, 4, 5]
>>> l.pop(2)
3
>>> l
[1, 2, 4, 5]

ومع ذلك ، إذا كنت تريد فقط حذف عنصر ، فاستخدم del :

>>> l = [1, 2, 3, 4, 5]
>>> del l[2]
>>> l
[1, 2, 4, 5]

بالإضافة إلى ذلك ، يسمح لك del باستخدام شرائح (مثل del[2:] ).


يكون من المفيد أيضًا إزالة وإبقاء عنصر من القائمة. حيث يسقط del فعليًا العنصر.

>>> x = [1, 2, 3, 4]

>>> p = x.pop(1)
>>> p
    2

يمكنك استخدام إما del أو pop لإزالة عنصر من القائمة استنادًا إلى الفهرس. ستقوم Pop بطباعة العضو الذي يقوم بإزالته من القائمة ، بينما تقوم القائمة بحذف هذا العضو دون طباعته.

>>> a=[1,2,3,4,5]
>>> del a[1]
>>> a
[1, 3, 4, 5]
>>> a.pop(1)
 3
>>> a
[1, 4, 5]
>>> 

يمكنك ببساطة استخدام وظيفة إزالة python.like هذا:

v=[1,2,3,4,5,6]
v.remove(v[4]) #I'm removing the number with index 4 of my array
print(v) #If you want verify the process

#it gave me this:
#[1,2,3,4,6]

ل - قائمة القيم. علينا إزالة الفهارس من قائمة inds2rem .

l = range(20)
inds2rem = [2,5,1,7]
map(lambda x: l.pop(x), sorted(inds2rem, key = lambda x:-x))

>>> l
[0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]




list