Skip to main content
 首页 » 编程设计

python之遍历列表并更改值

2025年05月04日32sky-heaven

我正在尝试遍历变量列表并根据需要对它们进行更改。任何人都可以帮助解决这个问题吗?当我第二次打印时,列表没有改变。我希望 b 和 c 分别是 {'lol'} {'test'}。我正在尝试这样做,而不是为值创建新列表,而是修改原始变量。

a = 'a,b' 
b = 'lol' 
c = 'Test' 
d = None 
 
print a, b, c, d 
 
f = lambda x: '{' + x + '}' if ',' not in x else x 
 
for i in [a, b, c, d]: 
    if i: 
        i = f(i) 
 
print a, b, c, d 

更新:

def do_work(self, args): 
    if args.a: 
        if ',' not in args.a: 
            args.a = '{' + args.a + '}' 
 
    if args.b: 
        if ',' not in args.b: 
            args.b = '{' + args.b + '}' 
 
    self.do_more_work(args) 

请您参考如下方法:

map你的 lambda 函数,map 迭代一个列表并为每个元素应用一个函数生成一个新列表:

a = 'a,b' 
b = 'lol' 
c = 'Test' 
d = None 
 
print(a, b, c, d) 
 
f = lambda x: '{' + x + '}' if x and ',' not in x else x 
 
my_list = [a, b, c, d] 
my_list = map(f, my_list) 
 
print (my_list) 

编辑

如果您需要更改原始值(如评论所述),您只需解压它们即可:

a, b, c, d = my_list = map(f, my_list) 
print(my_list) 
print(a) 
print(b) 
print(c) 
print(d) 
 
['a,b', '{lol}', '{Test}', None] 
a,b 
{lol} 
{Test}