mon*_*top 4 python tuples list
我有这个代码
a=[(1,'Rach', 'Mell', '5.11', '160'),(2, 'steve', 'Rob', '6.1', '200'), (1,'Rach', 'Mell', '5.11', '160')]
Run Code Online (Sandbox Code Playgroud)
如果 id = 2,我想将姓氏 Rob 更改为 'Roberto'
所以我的想法是将元组更改为列表,以便进行更改
我试过 :
a_len = len(a)
count = 0
a_list = []
while(count < a_len):
a_list.append(a[count])
count ++
for x, element in a_list:
if element[0] == 2:
a_list[x] = Roberto
Run Code Online (Sandbox Code Playgroud)
但这不起作用,你们知道该怎么做吗?
谢谢!
这样做:
a=[(1,'Rach', 'Mell', '5.11', '160'),(2, 'steve', 'Rob', '6.1', '200'), (1,'Rach', 'Mell', '5.11', '160')]
for i,e in enumerate(a):
if e[0]==2:
temp=list(a[i])
temp[2]='Roberto'
a[i]=tuple(temp)
print a
Run Code Online (Sandbox Code Playgroud)
印刷:
[(1, 'Rach', 'Mell', '5.11', '160'), (2, 'steve', 'Roberto', '6.1', '200'), (1, 'Rach', 'Mell', '5.11', '160')]
Run Code Online (Sandbox Code Playgroud)
如果你想要一个列表理解,这个:
>>> [t if t[0]!=2 else (t[0],t[1],'Roberto',t[3],t[4]) for t in a]
[(1, 'Rach', 'Mell', '5.11', '160'), (2, 'steve', 'Roberto', '6.1', '200'), (1, 'Rach', 'Mell', '5.11', '160')]
Run Code Online (Sandbox Code Playgroud)