web-dev-qa-db-ja.com

pythonリストを「更新」または「上書き」する方法

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

o/p [123, 'xyz', 'zara', 'abc', 2014]を生成します

このリストを上書き/更新するために何をすべきか。 O/Pが欲しい

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

11
pyLearner

これを試してみてください

alist[0] = 2014

しかし、123の位置がわからない場合は、次のようにしてみてください。

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

位置がわかっている場合はアイテムを交換してください:

aList[0]=2014

または、リスト内の位置ループがわからない場合は、アイテムを見つけて交換します

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

print aList
5
Kerby82

私はコーディングを学んでいますが、これと同じ問題が見つかりました。これを解決する簡単な方法は、@ kerby82が言ったようにリストを文字通り上書きすることだと思います:

Pythonのリスト内の項目は、フォームを使用して値に設定できます

x [n] = v

ここで、xはリストの名前、nは配列内のインデックス、vは設定する値です。

あなたの例では:

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

私は列挙せずにそれを好み、代わりに次のような「範囲」を使用します:

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

pythonに不慣れな人にとっては、読みやすく、要約するのが少し賢くなるかもしれません。

よろしくP.

0
innovacode

私はもっ​​とPythonicだと思う:

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

より有用:

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
Ilya Kaznacheev

同じ配列から値を取得して更新しようとしている場合は、次のコードを使用できます。

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

コレクションがuserData ['condition'] ['ts']であり、必要がある場合

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

出力は

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