【发布时间】:2016-03-16 01:24:47
【问题描述】:
我正在尝试遍历变量列表并在需要时对其进行更改。任何人都可以帮助解决这个问题吗?当我第二次打印时,列表没有改变。我期望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)
【问题讨论】:
-
顺便说一句,您应该避免使用 lambda 和三元运算符来定义
f。它使代码更难阅读并且什么也得不到。使用 if 语句和返回的简单def f(x): ...会更好。
标签: python list python-2.6