Python列表-如何用另一个替换列表元素

时间:2019-09-09 16:02:29

标签: python list tuples for-comprehension

我是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’)]

2 个答案:

答案 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')]