首页 > 解决方案 > 列表元素删除和添加,

问题描述

请不要将此标记为已回答的问题,因为我认为这与一般程序无关,但这是我没有意识到的具体事情。所以问题是当我运行程序时,它应该首先删除“araba”字符串,然后在其现有位置插入“car”字符串。所以我每次都更新字典并打印它但什么也没发生?谢谢

tr_mean=["araba","otobus","kus"]
en_mean=["car","bus","dog"]
dictionary={}
for x in tr_mean:
  index=tr_mean.index(x)
  dictionary[x]=en_mean[index]



print tr_mean.index("araba")
for x in tr_mean:
  index=tr_mean.index(x)
  dictionary[x]=en_mean[index]
print words
del tr_mean[tr_mean.index("araba")]
for x in tr_mean:
  index=tr_mean.index(x)
  dictionary[x]=en_mean[index]
print words
tr_mean.insert(0,"car")
for x in tr_mean:
  index=tr_mean.index(x)
  dictionary[x]=en_mean[index]

print words

标签: pythonpython-2.7

解决方案


tr_mean = ["araba", "otobus", "kus"]
en_mean = ["car", "bus", "dog"]
dictionary = {}
for x in tr_mean:
    index = tr_mean.index(x)
    dictionary[x] = en_mean[index]

print tr_mean.index("araba")

在这里,您只是再次做同样的事情,不需要。

# for x in tr_mean:
#     index = tr_mean.index(x)
#     dictionary[x] = en_mean[index]

你没有定义words,我猜你的意思是用dictionnary

print dictionary

"araba"你从这里删除tr_meantr_mean现在也是["otobus", "kus"]

del tr_mean[tr_mean.index("araba")]

在那之后,我猜你尝试“重置”字典

for x in tr_mean:
        index = tr_mean.index(x)
        dictionary[x] = en_mean[index]
    print dictionary

但你所做的只是:

dictionary["otobus"] = "bus"
dictionary["kus"] = "dog",

阿拉巴仍然存在dictionnary

在分配新值之前,请清除字典dictionary.clear()

dictionary.clear()
for x in tr_mean:
    index = tr_mean.index(x)
    dictionary[x] = en_mean[index]
print dictionary

或者更好的是,删除最后一段代码并简单地"araba"dictionary

del dictionary["araba"]

其他一切都保持不变。

tr_mean.insert(0, "car")
for x in tr_mean:
    index = tr_mean.index(x)
    dictionary[x] = en_mean[index]

print dictionary 

编辑:如果您想使用“araba”的值将“car”作为新键添加到字典中,您可以执行以下操作:

dictionary["car"] = dictionary.pop("araba")

.pop()将删除“araba”键并将与“araba”关联的值赋予新键dictionary["car"]


推荐阅读