当我写这段代码时:
f=['a','b','c',['d','e','f']]
def j(f):
p=f[:]
for i in range(len(f)):
if type(p[i]) == list:
p[i].reverse()
p.reverse()
return p
print(j(f), f)
我希望结果如下:
[['f','e','d'],'c','b','a'] ['a','b','c',['d','e ','f']]
但我看到的结果是:
[['f','e','d'],'c','b','a'] ['a','b','c',['f','e ','d']]
为什么呢?我怎样才能编写出符合我期望的代码呢?
答案 0 :(得分:-1)
reverse
修改了列表,你实际上想要创建一个新列表,所以你不要反转你已经得到的列表,如下所示:
def j(f):
p=f[:]
for i in range(len(f)):
if type(p[i]) == list:
p[i] = p[i][::-1]
p.reverse()
return p