中易网

python,我要实现以下功能: L=[a,b,c],当a改变时,L同时也被修改

答案:3  悬赏:30  
解决时间 2021-01-10 14:45
  • 提问者网友:最爱你的唇
  • 2021-01-10 10:05
python,我要实现以下功能: L=[a,b,c],当a改变时,L同时也被修改
最佳答案
  • 二级知识专家网友:鸠书
  • 2021-01-10 11:37
这是不可能的。a在这里只是一个变量名。赋值到L=[a,b,c]后,L里保存的是a的值,而不是a这个变量指针。。

可以这样子
L=[ [a],[b],[c] ]
这样如果[a]中的内容发生变化。虽然L的内容不变。不过L对象中包含的内容变了。追问假如
l=[['a'],['b'],['c']]
变成
l=['a','b','c']
有什么简单的方法吗追答可以这样子 l=[t[0] fo t in l]追问还有一个问题是

l=[['a'],['b'],['c'],’d']

时,怎么转化为
l=['a','b','c','d']追答l=[ str(t).replace('[','').replace(']') fo t in l ]

呵,不知道这个方法成不成。看着有些怪怪的。
全部回答
  • 1楼网友:轻熟杀无赦
  • 2021-01-10 13:32
如果 a 是类似于字符串的不变变量,那就是直接做不到的。
  • 2楼网友:拜訪者
  • 2021-01-10 13:09
不明白,如果是同步修改,很简答,例如
a = [ 1 ,2 ,3 ]
b = range( 4 )
c = range( 3 )
L = [ a ,b ,c ]
直接修改a即可
a.append( 5 )
print( L )追问我需要的是,a,b,c都是字符串追答使用类进行包装即可
class new_str( object ):
str_ = ''
def __init__( self ,str_ ):
self.str_ = str( str_ )

def edit( self ,edit_str ):
self.str_ = str( edit_str )
a = new_str( 'test' )
L = [ a ,'data' ,'new' ]
a.edit_str( 'del' )
print( L[ 0 ].str_ )
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息