我是python的新手。我的python列表低于格式
myList = [('steve' , '1687'), ('bob', '1987')]
我想将1687替换为“ gci”,但没有任何帮助专家
for i in myList:
[ gci id x == 1687 else x for x in myList]
print myList
结果与myList相同。 我想输出为
[(‘steve’ , ‘gci’), (‘bob’, ‘bci’)]
答案 0 :(得分:3)
my_list = [(i,"gcid") if x=='1687' else (i,x) for i,x in my_list]
您有一个元组,需要先打开包装。此外,python使用蛇形大小写,而不是使用驼峰式大小写
我在列表理解中打开了元组的包装。如果更容易理解,它就在for循环中:
new_list = []
for tuple_element in my_list:
name, number = tuple_element # get values of elements in tuple here
if number == '1697':
number = 'gcid'
new_tuple = (name, number)
new_list.append(new_tuple)
答案 1 :(得分:1)
考虑使用列表理解:
>>> myList = [('steve' , '1687'), ('bob', '1987')]
>>> [ (n, d if d != '1687' else 'bci') for n, d in myList]
[('steve', 'bci'), ('bob', '1987')]
更好的是,如果要更改多个值,请使用查找字典:
>>> myList = [('steve' , '1687'), ('bob', '1987')]
>>> lookup = {'1687': 'bci', '1987': 'gci'}
>>> [ (n, lookup.get(d, d)) for n, d in myList]
[('steve', 'bci'), ('bob', 'gci')]