webentwicklung-frage-antwort-db.com.de

Wie man eine Python-Liste "aktualisiert" oder "überschreibt"

aList = [123, 'xyz', 'zara', 'abc']
aList.append(2014)
print aList

was produziert o/p [123, 'xyz', 'zara', 'abc', 2014]

Was ist zu tun, um diese Liste zu überschreiben/zu aktualisieren? 

[2014, 'xyz', 'zara', 'abc']

4
pyLearner

Sie können dies versuchen 

alist[0] = 2014

wenn Sie sich jedoch nicht sicher sind, wie die Position 123 ist, können Sie dies wie folgt versuchen:

for idx, item in enumerate(alist):
   if 123 in item:
       alist[idx] = 2014
14
Rahul Tripathi

Was ist mit dem Artikel zu ersetzen, wenn Sie die Position kennen:

aList[0]=2014

Wenn Sie die Positionsschleife in der Liste nicht kennen, suchen Sie das Element und ersetzen Sie es

aList = [123, 'xyz', 'zara', 'abc']
for i,item in enumerate(aList):
  if item==123:
    aList[i]=2014

print aList
3
Kerby82

Ich würde es lieber ohne Aufzählung bevorzugen und stattdessen "range" wie folgt verwenden:

for item in range(0, len(alist)):
   if 123 in item:
      alist[item] = 2014

Für diejenigen, die mit Python noch nicht vertraut sind, ist es möglicherweise lesbarer und ein wenig schlauer zu rekapitulieren. 

Grüße P. 

1
innovacode

Ich lerne Codieren und habe das gleiche Problem gefunden. Ich glaube, der einfachere Weg, dieses Problem zu lösen, ist buchstäblich das Überschreiben der Liste wie @ kerby82 sagte:

Ein Element in einer Liste in Python kann mithilfe des Formulars auf einen Wert festgelegt werden

x [n] = v

Dabei ist x der Name der Liste, n der Index im Array und v der Wert, den Sie einstellen möchten.

In Ihrem Beispiel:

aList = [123, 'xyz', 'zara', 'abc']
aList[0] = 2014
print aList
>>[2014, 'xyz', 'zara', 'abc']
0

Ich denke es ist mehr Pythonic:

aList.remove(123)
aList.insert(0, 2014)

nützlicher:

def shuffle(list, to_delete, to_shuffle, index):
    list.remove(to_delete)
    list.insert(index, to_shuffle)
    return

list = ['a', 'b']
shuffle(list, 'a', 'c', 0)
print list
>> ['c', 'b']
0
Dreamworm

Wenn Sie versuchen, einen Wert aus demselben Array zu übernehmen und ihn zu aktualisieren, können Sie den folgenden Code verwenden. 

{  'condition': { 
                     'ts': [   '5a81625ba0ff65023c729022',
                               '5a8161ada0ff65023c728f51',
                               '5a815fb4a0ff65023c728dcd']}

Wenn die Sammlung userData ist ['condition'] ['ts'] und wir müssen 

    for i,supplier in enumerate(userData['condition']['ts']): 
        supplier = ObjectId(supplier)
        userData['condition']['ts'][i] = supplier

Die Ausgabe wird sein 

{'condition': {   'ts': [   ObjectId('5a81625ba0ff65023c729022'),
                            ObjectId('5a8161ada0ff65023c728f51'),
                            ObjectId('5a815fb4a0ff65023c728dcd')]}
0
Haris Np