Я этот список кортежей:Python: Каков правильный способ изменения элементов списка?
l = [('a','b'),('c','d'),('e','f')]
И два параметра: ключевое значение, и новое значение для изменения. Например,
key = 'a'
new_value= 'B' # it means, modify with 'B' the value in tuples where there's an 'a'
Я это два варианта (оба произведения):
f = lambda t,k,v: t[0] == k and (k,v) or t
new_list = [f(t,key,new_value) for t in l]
print new_list
и
new_list = []
for i in range(len(l)):
elem = l.pop()
if elem[0] == key:
new_list.append((key,new_value))
else:
new_list.append(elem)
print new_list
Но, я новичок в Python, и не знаю, если его право.
Вы можете мне помочь? Спасибо!
Если вы хотите использовать словарные функции, используйте [словарь] (http://docs.python.org/tutorial/datastructures.html#dictionaries) , Очевидно, это означает, что ключи должны быть уникальными; Я не знаю, если это противоречит вашим требованиям. – NullUserException
Спасибо, я знаю словарь. Это более общий вопрос, как изменить элементы в списке. – santiagobasulto
Это не изменяет. List, он создает новую копию. Какой ты хочешь? –